我正在寻找一种方法,让 bash 根据命令写入终端的流对命令的输出进行着色。有什么方法可以让它为每个流着色吗?
比如说
stdout -> regular color
stderr -> red
program created streams that write to the terminal -> blue
答案1
虽然与您的要求不同,但这个早期的问题值得一读,其中有人想通过颜色区分 stdout/stderr。
答案2
有:
https://github.com/sickill/stderred
或者你可以从 bash 中使用以下命令来完成此操作:
rederror() { (tput setaf 1; cat ; tput sgr0) >&2; }
#Example
someCommand() { echo normal; echo error >&2; }
someCommand 2> >( rederror )
我不认为你可以将从 bash 进入终端的非标准输出设置为蓝色。 stderred 使用的方法应该是可能的(但我认为它只对 stderr 进行着色)。