Colors
i3Blocks 腳本(著色)
我想修改列印出頻寬輸入/輸出的 i3Blocks 腳本(i3 WM 環境的實用程序塊)。特別是我想更改此指令輸出的顏色:
echo -n " $INLABEL"
使用顏色
#9fbc00
我該怎麼做?謝謝
簡短的回答你不能,因為真正的 24 位顏色 (rgb) 不是公認標準的一部分,無論終端是否支持它都會受到影響。您應該使用終端調色板中的預定義顏色。ANSI 3/4 位顏色
話雖如此,一些終端確實支持真正的 24 位顏色,並且大多數都使用這種格式:in
\033[48;2;r;g;bm
將顏色設置為背景,可以更改為將顏色定義為前景。(更多資訊)4``48``3
rg 和 b 字母以十進製表示一個 8 位數字,因此
printf "\033[38;2;159;188;0mhello
會以您想要的顏色列印一個 hello (#9fbc00
),但一旦執行命令,它就不會重置,因此您需要告訴終端返回原始顏色。為此,您需要使用另一個轉義序列。\033[0m
現在知道了,一種無錯誤的列印
Hello world!
方式#9fbc00
是
printf "\033[38;2;159;188;0mHello world!\033[0m\n"
.ps:echo 不喜歡轉義碼,如果你想格式化就用 printf