コマンドラインの文字色を変える(ESC[)

エスケープシーケンスに対応している端末ウィンドウでは、文字色や背景色を指定することができます。
echoコマンドでエスケープシーケンスを使うには、-eオプションが必要です。

color

コード機能
\x1b[30m文字色を黒に変更
\x1b[31m文字色を赤に変更
\x1b[32m文字色を緑に変更
\x1b[33m文字色を黄に変更
\x1b[34m文字色を青に変更
\x1b[35m文字色をマゼンタに変更
\x1b[36m文字色をシアンに変更
\x1b[37m文字色を白に変更
\x1b[39m文字色を標準に戻す
\x1b[40m背景色を黒に変更
\x1b[41m背景色を赤に変更
\x1b[42m背景色を緑に変更
\x1b[43m背景色を黄に変更
\x1b[44m背景色を青に変更
\x1b[45m背景色をマゼンタに変更
\x1b[46m背景色をシアンに変更
\x1b[47m背景色を白に変更
\x1b[49m背景色を標準に戻す
\x1b[2J画面クリア
\x1b[Kカーソル位置から行末までをクリア
\x1b[nAカーソルを上にn行移動
\x1b[nBカーソルを下にn行移動
\x1b[nCカーソルを右にn桁移動
\x1b[nDカーソルを左にn桁移動
\x1b[y;xHカーソルをy行のx桁目に移動
\x1b[0m属性を標準に戻す
\x1b[1m属性を太字に変更
\x1b[4m属性を下線に変更
\x1b[7m属性を反転に変更

色を変えるだけでなく、カーソルの位置も任意に変えられます。

~$ clear; while :;
> do printf "\x1b[%d;%dH\x1b[3%dm." \
> `expr $RANDOM % 40` \
> `expr $RANDOM % 160` \
> `expr $RANDOM % 8`;done

黒いコンソールにランダムに星を描いてみました。
escape_star

コメント

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