编辑:
我想提出一个建议,即解析颜色通常是一个构思错误的想法。
我想要它的部分原因是我既可以解析它,又可以将其传递到我自己的脚本输出中。没关系,但是使用瓷器或类似瓷器自己重建彩色零件可能更明智!
原始问题如下。
我喜欢看到颜色,因为我的脚本足够强大(到目前为止)可以处理颜色代码。似乎我在这里背叛了话题,但老实说,我看不出必须解析脚本中的转义代码之类的东西有什么大不了的。如果颜色有助于交互使用,为什么它们不能在脚本使用中帮助我聚集数据并处理比手工更多的数据?颜色会更重要吗?
无论如何,我写了一个简洁的小shell脚本来修改git status
输出,而我只是想使此脚本保持原样。设置我的全局git配置,以便在git状态下以彩色显示更改和未跟踪的文件列表。不幸的是,与之不同的git diff
是git status
,我没有找到强制使用颜色的选项。
明确地说,这是问题所在:
$ git status
产生完美的输出,但是(摘录自我的脚本)
git status | sed "s/^#/\x1b[34m#[0m/"
不会产生任何彩色git status
输出,您甚至可以在此处看到我正在将前导哈希字符明确转换为蓝色,因为它有助于突出显示脚本输出的不同区域。
有谁知道如何使它熄灭颜色?我是否可以使用一个可用作“假终端” STDIN / STDOUT管道的标准程序?实际上,我也在开发pty伪终端工具,因此我可以为此目的当然使用它,但这是一个比较繁琐的解决方案(由于我尚未完成构建,因此尚未准备就绪)。