Colors
即使使用 –color 選項,watch(1) 也無法正確插入 tree(1) 顏色
我正在使用簡單的命令組合來“監視”我的文件系統更改:watch 和 tree。
除了我想要顏色卻買不到。
這是我認為應該起作用的:
watch --color 'tree -C'
哪種起作用,因為它給了我一些顏色,但與tree -C
它本身不同。這是一些螢幕截圖:
watch –color ’tree -C’輸出,一些顏色應用了
watch ’tree -C’輸出,表明 tree 確實發送了所有轉義碼
tree -C輸出,預期結果
罪魁禍首也可能在我的環境變數中,但如果我
watch 'echo $LS_COLORS'
,我的 conf 就在那裡。有任何想法嗎?:)
基本問題是使用不同**
watch
的tree
**資訊來獲取顏色:
- 該**
watch
程序解釋用於指定影片屬性的標準 (ECMA-48) 轉義序列。這意味著8**種顏色,加上粗體、閃爍、下劃線、反向和斜體。它使用 (n)curses 顯示資訊,使結果依賴於終端數據庫- 該程序使用環境變數**
tree
模仿 GNU 。它使用環境變數(curses 和大多數其他終端應用程序用來辨識終端數據庫中的條目)來選擇一組定制的轉義序列,它們不一定與終端數據庫的描述有任何關係。ls
LS_COLORS
TERM
**通過一些工作,您可以使這些匹配,例如,通過生成適合**
LS_COLORS
給定終端條目的方式。顯然沒有人這樣做過。而且由於內容LS_COLORS
不完整(僅涵蓋終端描述的一小部分:沒有功能鍵,沒有游標移動,沒有一般性),因此從LS_COLORS
**.如果**
tree
使用 256 色,watch
可能無法理解這些程式碼(最近的更改針對 procps 解決了此問題的一部分,top
但尚未適應watch
**- 稍等一下)。 **watch
**使用 (n)curses 管理螢幕,這使得有必要 (forwatch
) 將轉義碼轉換為 curses-calls。進一步閱讀: