今回はコンソールでいろいろな出力ができることについて書いてみます。
色を出力する
最近のコンソールでは色が出力できるものも多いですが、どのようにしているのでしょうか。
以下のように記述すると出力できます。
echo -e '\x1b[34mHello, world!\x1b[0m'
このように記述すると、青色の文字でHello, world!と出るはずです。
具体的に説明すると、
ESC [ codes m
という形式で記述をします。
ESCは、ターミナルのエスケープを表します。一般的には、\x1Bまたは\033\が使用されます。(前者は16進数、後者は8進数表記で27を表す)
そして、codesには以下の対応表に基づき、数字を書きます。
| 数字 | 動作 |
|---|---|
| 0 | すべての装飾を既定に戻す |
| 1 | 太く、明るく |
| 2 | 薄暗く |
| 3 | 斜体に |
| 4 | 下線を引く |
| 5 | 文字をチカチカさせる |
| 6 | 文字を高速にチカチカする |
| 7 | 背景と文字の色を入れ替える |
| 8 | 文字を非表示にする(印字はされる) |
| 9 | |
| 30 | 文字を黒色に |
| 31 | 文字を赤色に |
| 32 | 文字を緑色に |
| 33 | 文字を黄色に |
| 34 | 文字を青色に |
| 35 | 文字をマゼンタに |
| 36 | 文字をシアンに |
| 37 | 文字を白色に |
| 40 | 背景を黒色に |
| 41 | 背景を赤色に |
| 42 | 背景を緑色に |
| 43 | 背景を黄色に |
| 44 | 背景を青色に |
| 45 | 背景をマゼンタに |
| 46 | 背景をシアンに |
| 47 | 背景を白色に |
| 90 | 文字を明るい黒色(灰色)に |
| 91 | 文字を明るい赤色に |
| 92 | 文字を明るい緑色に |
| 93 | 文字を明るい黄色に |
| 94 | 文字を明るい青色に |
| 95 | 文字を明るいマゼンタに |
| 96 | 文字を明るいシアンに |
| 97 | 文字を明るい白色に |
| 100 | 背景を明るい黒色(灰色)に |
| 101 | 背景を明るい赤色に |
| 102 | 背景を明るい緑色に |
| 103 | 背景を明るい黄色に |
| 104 | 背景を明るい青色に |
| 105 | 背景を明るいマゼンタに |
| 106 | 背景を明るいシアンに |
| 107 | 背景を明るい白色に |
また、複数のコードを同時に組み合わせることもできます。;を用いて区切ります。
echo -e '\x1b[95;100mHello, world!\x1b[0m'
これは、明るい黒色(灰色)の背景に、明るいマゼンタ色の文字を印字します。