【问题标题】:Add --color to all Unix commands将 --color 添加到所有 Unix 命令
【发布时间】:2009-05-03 10:08:20
【问题描述】:

是否可以“别名”所有命令以附加--color?还是为每个支持它的程序自动激活它?

【问题讨论】:

标签: unix shell


【解决方案1】:

您应该小心这一点,尤其是在链接调用时。

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 而得到奇怪的结果。

【讨论】:

  • 某些命令(例如 grep)支持 '--color=auto' 当且仅当 stdout 是终端时才会为输出着色。如果标准输出是管道,它们不会着色。
【解决方案2】:

shell 如何自动知道哪些程序支持 --color 选项?您必须给它一个列表,只要您要这样做,您还不如给它一个别名命令列表以运行。我想它可以通过这样的方式(在 bash 中)以编程方式完成:

for cmd in ls blah foo; do
    alias "$cmd=$cmd --color"
done

【讨论】:

    【解决方案3】:

    支持--color 选项的程序确实很少,而且它们实际上并不是由单个组织编写的。因此,他们不会为他们的选择引用一个中心位置。哎呀,甚至没有统一的参数集,所以每个命令末尾的 --color 选项可能会造成很大的损害!

    恐怕你得给一个一个一个别名。例如,对于ls

    alias ls='ls --color'
    

    【讨论】:

      【解决方案4】:

      而不是尝试更改每个命令

      为什么不直接改变控制台显示颜色的方式

      【讨论】:

      • 控制台怎么改?让它神奇地显示命令未标记的文本的颜色?
      猜你喜欢
      • 2012-05-22
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 2012-10-06
      • 2021-01-12
      • 1970-01-01
      相关资源
      最近更新 更多