Colors

i3Blocks 腳本(著色)

  • February 21, 2022

我想修改列印出頻寬輸入/輸出的 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

引用自:https://unix.stackexchange.com/questions/583409