Contents
文字装飾のエスケープコード
echoコマンドでターミナル出力に装飾を付けるにはエスケープコードを使用する。
echo コマンドでエスケープコードを有効にするオプションは -e である。
文字装飾の書き方:
echo -e '<Esc>[{文字属性};{文字の色};{背景の色}mここに文字[m'
bash環境で<Esc>の文字は次のシンタックスが当てられている。
- \e
- \033
- \x1B
以下の例ではエスケープ文字にに\eを使っています。
赤い背景に白色で太字の文字をechoする例;
echo -e '\e[1;37;41mここに文字\e[0m'
文字属性
文字属性にはSetとResetの属性がある。
それぞれの属性がサポートされているかはターミナルによって異なる。
Setはその属性を適用する場所に、Resetは属性の適用範囲の終端に書く。
echo -e "属性なし \e[1mここから太字 \e[21mここから太字属性なし"
Set
コード | 説明 |
---|---|
1 | 太字/明るく |
2 | 暗く |
4 | 下線 |
5 | 点滅 |
7 | 文字色と背景色を反転 |
8 | 表示しない(パスワードなどに使う) |
Reset
コード | 説明 |
---|---|
0 | すべての属性をリセット |
21 | 太字/明るくをリセット |
22 | 暗くをリセット |
24 | 下線をリセット |
25 | 点滅をリセット |
27 | 文字色と背景色の反転をリセット |
27 | 表示隠しをリセット |
8bit, 16bitカラー
以下の8bit, 16bitカラーは多くのターミナルで使用可能である。
文字色
コード | 説明 |
---|---|
39 | デフォルトの文字色 |
30 | Black |
31 | Red |
32 | Green |
33 | Yellow |
34 | Blue |
35 | Magenta |
36 | Cyan |
37 | Light gray |
90 | Light gray |
91 | Light red |
92 | Light green |
93 | Light yellow |
94 | Light blue |
95 | Light magenta |
96 | Light cyan |
97 | White |
背景色
コード | 説明 |
---|---|
49 | デフォルトの背景色 |
40 | Black |
41 | Red |
42 | Green |
43 | Yellow |
44 | Blue |
45 | Magenta |
46 | Cyan |
47 | Light gray |
100 | Light gray |
101 | Light red |
102 | Light green |
103 | Light yellow |
104 | Light blue |
105 | Light magenta |
106 | Light cyan |
107 | White |
88bit/256bitカラー
いくつかのターミナルは88bitまたは256bitカラーをサポートしている。
文字色
256bitカラーの文字色は1〜255の色番号を次の形式で指定する。
<Esc>[38;5;色番号m
背景色
256bitカラーのの背景色は1〜255の色番号を次の形式で指定する。
<Esc>[48;5;色番号m
カラーテーブル表示スクリプト
#!/bin/zsh
#renderforegroundcolor
line='';
fornumin`seq1256`;do
line=$line"\e[38;5;"$num"m"$num"\t\e[0m"
row=`expr$num%16`
if[$row=0];then
echo-e$line
line=''
fi
done
echo#newline
#renderbackgroundcolor
line2='';
fornumin`seq1256`;do
line2=$line2"\e[48;5;"$num"m"$num"\t\e[0m"
row=`expr$num%16`
if[$row=0];then
echo-e$line2
line2=''
fi
done