.Xresourcesの色を使わずに端末から色を印刷できますか?たとえば、echo -e "\033[32m Test"
「Test」は印刷されますが、その色は.Xresourcesで緑色で定義された色です。つまり、プリセットを再定義せずに#FF0000などの未定義の色を印刷するにはどうすればよいですか?
答え1
ターミナル(シェル)ウィンドウの色はファイルの色と実際には関係ありません.Xresources
。
端末(シェル)ウィンドウで色を印刷するには、このtput
コマンドを真剣に考慮する必要があります。これはterminfo
、データベースを使用して色を取得するために必要なエスケープシーケンスを生成します。
man 5 terminfo
関連セクションを読むことができますColor Handling
。利用可能なカラーテーブルは次のとおりです。
Colour Value RGB
black 0 0, 0, 0
red 1 max,0,0
green 2 0,max,0
yellow 3 max,max,0
blue 4 0,0,max
magenta 5 max,0,max
cyan 6 0,max,max
white 7 max,max,max
そして、setaf
(ANSI前景設定)とsetab
(ANSI背景設定)コマンドで設定します。後でsgr0
リセットするために使用されます。
例えば
tput setaf 4 # Blue text
tput setab 3 # Yellow background
echo -n "This is blue text on a yellow background"
tput sgr0 # Reset colours
echo
答え2
一部の端末エミュレータは直接RGB True Colorをサポートしています。バラよりhttps://gist.github.com/XVilka/8346728詳細と使用例をご覧ください。