帯域幅入力/出力を印刷するi3Blocksスクリプト(i3 WM環境のユーティリティブロック)を変更したいと思います。特に、このディレクティブの出力色を変更したいと思います。
echo -n " $INLABEL"
色で#9fbc00
何をしますか?ありがとう
ベストアンサー1
短い答えはできないということです。真の24ビットカラー(RGB)は許容される標準の一部ではなく、端末がそれをサポートしているかどうかによって問題になるためです。端末パレットで事前定義された色を使用する必要があります。ANSI 3/4ビットカラー
つまり、一部の端末は実際の24ビットカラーをサポートし、ほとんどは\033[48;2;r;g;bm
色を背景に4
設定し、色を前景として定義する48
ために変更できる形式を使用します。3
(追加情報)
文字rgとbは10進数で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を使用してください。