Linux ターミナルに色付きのテキストを出力するにはどうすればいいですか? 質問する

Linux ターミナルに色付きのテキストを出力するにはどうすればいいですか? 質問する

色付きの文字をサポートする Linux 端末に印刷するにはどうすればよいでしょうか?

端末がカラーコードをサポートしているかどうかはどうすればわかりますか?

ベストアンサー1

出力する必要があるANSIカラーコードすべての端末がこれをサポートしているわけではないことに注意してください。カラーシーケンスがサポートされていない場合は、ゴミが表示されます。

例:

 cout << "\033[1;31mbold red text\033[0m\n";

ここで、\033は ESC 文字、ASCII 27 です。[その後に が続き、 で区切られた 0 個以上の数字が続き;、最後に文字 が続きますm。数字は、その時点以降に切り替える色と形式を表します。

前景色と背景色のコードは次のとおりです。

         foreground background
black        30         40
red          31         41
green        32         42
yellow       33         43
blue         34         44
magenta      35         45
cyan         36         46
white        37         47

さらに、以下も使用できます。

reset             0  (everything back to normal)
bold/bright       1  (often a brighter shade of the same colour)
underline         4
inverse           7  (swap foreground and background colours)
bold/bright off  21
underline off    24
inverse off      27

を参照してくださいWikipediaの表その他のあまり広くサポートされていないコードの場合。


端末がカラーシーケンスをサポートしているかどうかを確認するには、TERM環境変数の値を確認します。環境変数には、使用されている特定の端末タイプ(例vt100gnome-terminal、、、、...)が指定されているはずです。次にxtermscreenterminfo データベース;colors機能を確認します。

おすすめ記事