向所有Unix命令添加--color
shell如何自动知道哪些程序支持--color选项?你必须给它一个列表,并且只要你打算这么做,你可以给它一个alias命令列表来运行。我想这可以通过编程像这样(在bash)来完成:
for cmd in ls blah foo; do
alias "$cmd=$cmd --color"
done
实际上有支持--color
选项很少有程序,而实际上,它们不是由单个组织编写。因此,他们没有提及他们选择的中心位置。哎呀,甚至没有一个统一的参数设置,所以只要--color
选项结束每一个命令可能会造成很大的伤害!
恐怕你必须为每一个别名。例如,对于ls
:
alias ls='ls --color'
您应该小心,特别是在链接调用时。
grep --color=yes 'foo' bar.txt | less #leads to weird ANSI stuff in output
grep --color=yes 'foo' bar.txt | less -R #binary codes interpreted as colors
基本上,这可以搞砸了流水线......我建议走样的事情与彩色输出到单独的命令来避免做“CMD | MYPROG”并获得由于嵌入式ANSI奇怪的结果。
大多数命令都有--color = tty用于此目的 – Joshua 2009-04-19 19:25:07
某些命令(如grep)支持'--color = auto',当且仅当stdout是终端时,它才会将输出着色。如果stdout是管道,则它们不会着色。 – 2009-05-03 02:19:29
,而不是试图改变每个命令
为什么不改变这样你控制台显示的颜色
参见http://stackoverflow.com/questions/563500/what-unix-commands-support-颜色输出 – 2009-05-03 02:08:20