我正在尝试编写一个程序,该程序运行像 gcc 这样的控制台程序并以颜色显示其输出。我用了openpty
而不是pipe
假装是一个字符设备,现在得到ANSI 转义码携带颜色信息。我尝试了一些程序,他们有时会给我代码CSI [ 49 m
。两个都维基百科和xterm 转义码文档(搜索Ps = 4 9
)同意代码CSI [ 49 m
意味着我应该使用默认背景颜色。
然而,debian 的 xterm 和 zsh 以及 ubuntu 的 linux 控制台并不同意。
printf '\033[\061mTest\n\033[\060m'
在像 xterm 这样的控制台中执行应该使用默认背景颜色打印“Test”(\033
是转义并escape + [
创建 CSI(控制序列引入器)并且\061
是八进制十进制 49),但它实际上打印了“测试” 以粗体显示(\061
最后的似乎意味着“不再是粗体”,但维基百科和 xterm 颜色代码文档中都没有记录)。上面提到的所有控制台都同意这一点。
有各种控制台和标准的颜色代码列表,但它们都没有列出CSI 49 m
“粗体”的意思。
这种不一致从何而来?在哪里可以找到与 xterm、zsh 或 Linux 控制台所使用的颜色代码相对应的颜色代码列表?