gpt4 book ai didi

bash - 如何在 bash 中获取当前终端颜色对

转载 作者:行者123 更新时间:2023-11-29 08:47:43 25 4
gpt4 key购买 nike

我想在 BASH 中查询和存储当前终端颜色对例如:

#!/bin/bash

#some ANSI colour escape sequences
red="\033[0;31m"
grn="\033[0;32m"
blu="\033[0;34m"

def="\033[0;00m" # default

echo -e "Change to ${red} red to ${def} default to ${blu} blue."

# now store the current color (which happens to be blue) e.g.:

cur=????

echo -e "Change to ${grn} green and back to what I had before ${cur}"
echo -e "This would be in blue if variable cur contained e.g.: 0;34m."
echo -e "Back to default${def}"
exit 0

我无法回答的是如何捕捉当前颜色

cur=????

最佳答案

问题是关于当前的颜色,而不是光标位置

两者都是“非标准”的(尽管后者,光标位置报告是由任何对“VT100 模拟器”具有有效声明的东西实现的)。

但是,xterm 实现了一组称为动态颜色 的转义序列,它早于 ANSI 颜色功能。那些设置工作颜色,包括文本前景和背景。我在 2002 中修改了这个允许应用程序发送带有“?”的序列而不是告诉 xterm 返回颜色值的颜色,例如,

OSC 1 1 ? ST

使用 XTerm Control Sequences 中给出的符号

关于bash - 如何在 bash 中获取当前终端颜色对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28096697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com