Bash の echo の出力色を変更する
Nilesh Katuwal
2023年1月30日
この記事では、Linux でエコーの色を変更するさまざまな方法を紹介します。
Linux でエコーの出力色の変更を開始します。Linux で背景の出力色を変更する方法の例も示します。
Bash で前景色を変更する
Linux での前景色の変更の例を見ていきます。
$ echo "$(tput setaf 1)Shirt red $(tput setaf 4) Pant blue"
出力:
前景色には setaf
が使用されます。番号 1
は赤で、番号 4
は青です。
色番号は次のとおりです。
番号 | 色 |
---|---|
1 | 黒 |
2 | 赤 |
3 | 緑 |
4 | 黄色 |
5 | 青い |
6 | シアン |
7 | 白い |
Bash で背景色を変更する
echo
の背景色を変更することもできます。
$ echo "$(tput setaf 3) $(tput setab 1)sunflower is yellow"
出力
背景色は setab
を使用しています。出力は、背景色が赤
に変更されたのに対し、テキストの色は黄色がかったままであることを示しています。
Bash でのエスケープシーケンスの使用
ターミナル上の色付きのテキストは、スクリプトによるエスケープシーケンスを使用して生成できます。各色には異なるカラーコードがあります。
例を見てみましょう。
$ echo -e "\e[1;31m Red is red in color bcoz its red"
上記の例では、-e
を使用すると、echo コマンドで文字列内のエスケープシーケンスを考慮することができます。\e
はエスケープシーケンスの開始を表します。
また、[1
を使用してテキストを太字にし、31
は赤のカラーコードであり、m
はエスケープシーケンスの結論を表します。
出力
出力に見られるように、エスケープシーケンスを使用してテキストを赤で出力しました。
30
から 39
の範囲の色は前景用です。背景色を変更したい場合は、40
以上のコードの色を使用する必要があります。
色の数は次のとおりです。
色 | 前景 | バックグラウンド |
---|---|---|
黒 | 30 | 40 |
赤 | 31 | 41 |
緑 | 32 | 42 |
黄色 | 33 | 43 |
青い | 34 | 44 |
赤紫色 | 35 | 45 |
シアン | 36 | 46 |
白い | 37 | 47 |