read コマンドに色を付けて表示する方法

1.bashでの色付け

(1)書式

書き方は2通り。(以下の例は~/.bashrc より)

PS1='[\033[書体や色番号m\表示文字列\033[元に戻すm]\$ '

PS1='[\e[書体や色番号m\表示文字列\e[元に戻すm]\$ '

 

\033 と \e が同じ意味である(どちらも「アスキーの制御文字を表示する」の意味)。

上記の書式は \033[(または \e[ )で開始され、\033[ (または \e[)で終了する。

両端の[ と ]$ は表文字の一部である。 

アスキーの制御文字って?ここでは特殊文字ってぐらいに覚えておけば良いと思う。詳しくはGoogleで検索してください。

参考:bashのプロンプトを変更するには

 

2.文字装飾の書き方

色番号は

文字色(書体を含む); 下線(反転やブリンクなど); バックグラウンドの色

の順に書く。文字そのものの装飾、文字周りの装飾、そしてバックグラウンドと3種類の構成である。

参考: bashで16色表示するスクリプト用意しておくと便利

3.番号の作り

数字は全て2桁。

2桁目の0(太字等),3(文字色)、4(背景)と1桁目の0〜8の数字を組み合わせて実現する。

色(1桁目)文字(2桁目3)下線等2桁目0)背景(2桁目4)
0(黒)30(文字黒)00(すべてを初期化)40(背景黒)
1(赤)31 (文字赤)01(太字)41(背景赤)
2(緑)32(文字緑)02(弱強調)42(背景緑)
3(黄)33(文字黄または茶) 43(背景黄または茶)
4(青)34(文字青)04(下線)44(背景青)
5(紫)35(文字紫)05(点滅)45(背景紫)
6(水)36(文字水) 46(背景水)
7(白)37(文字白またはグレー)07(反転)47(背景白またはグレー)
8 08(非表示) 

参考:シェルスクリプトの出力に色をつけたい!

4.readコマンドの場合

制御文字は、通常、echo -e に渡すが、read コマンドには、制御文字の認識に $ が必要。

read -p

参考:Read Command : Display the prompt in color (or enable interpretation of backslash escapes)


\e[31m表示する文字列\e[0m: ' object

参考:Read Command : Display the prompt in color (or enable interpretation of backslash escapes)

コメント

タイトルとURLをコピーしました