【发布时间】:2009-05-03 10:08:20
【问题描述】:
是否可以“别名”所有命令以附加--color?还是为每个支持它的程序自动激活它?
【问题讨论】:
是否可以“别名”所有命令以附加--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 而得到奇怪的结果。
【讨论】:
shell 如何自动知道哪些程序支持 --color 选项?您必须给它一个列表,只要您要这样做,您还不如给它一个别名命令列表以运行。我想它可以通过这样的方式(在 bash 中)以编程方式完成:
for cmd in ls blah foo; do
alias "$cmd=$cmd --color"
done
【讨论】:
支持--color 选项的程序确实很少,而且它们实际上并不是由单个组织编写的。因此,他们不会为他们的选择引用一个中心位置。哎呀,甚至没有统一的参数集,所以每个命令末尾的 --color 选项可能会造成很大的损害!
恐怕你得给一个一个一个别名。例如,对于ls:
alias ls='ls --color'
【讨论】:
而不是尝试更改每个命令
为什么不直接改变控制台显示颜色的方式
【讨论】: