2009-04-19 62 views
1

是否可以「別名」所有命令來追加--color?或者讓它爲支持它的每個程序自動激活?向所有Unix命令添加--color

+0

參見http://stackoverflow.com/questions/563500/what-unix-commands-support-顏色輸出 – 2009-05-03 02:08:20

回答

2

shell如何自動知道哪些程序支持--color選項?你必須給它一個列表,並且只要你打算這麼做,你可以給它一個alias命令列表來運行。我想這可以通過編程像這樣(在bash)來完成:

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

實際上有支持--color選項很少有程序,而實際上,它們不是由單個組織編寫。因此,他們沒有提及他們選擇的中心位置。哎呀,甚至沒有一個統一的參數設置,所以只要--color選項結束每一個命令可能會造成很大的傷害!

恐怕你必須爲每一個別名。例如,對於ls

alias ls='ls --color' 
3

您應該小心,特別是在鏈接調用時。

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奇怪的結果。

+0

大多數命令都有--color = tty用於此目的 – Joshua 2009-04-19 19:25:07

+0

某些命令(如grep)支持'--color = auto',當且僅當stdout是終端時,它纔會將輸出着色。如果stdout是管道,則它們不會着色。 – 2009-05-03 02:19:29

-1

,而不是試圖改變每個命令

爲什麼不改變這樣你控制檯顯示的顏色