【シェルスクリプト実践講座】ANSIエスケープシークエンスを使おう①〜基本的な使い方

「ANSIエスケープシークエンス」
基礎の基礎
-e
$ echo -e "<画面制御文>"
#👇Bash等のANSI-Cクォートが使える場合には以下でもOK
$ echo $'<画面制御文>'
\e
\033
\x1b
\e
___① ____② ____③
\e[ 数字 文字
\e[
;
$ echo -e "\e[3m"

$ echo -e "\e[0m"

$ echo -e "普通の文字列が...\e[3m一旦イタ リックになって\e[0m...また普通に戻ります。"

制御操作の作法
___① ____② ____③
\e[ 数字 文字
文字種を変える
❸ | ❷ | 操作・機能 |
---|---|---|
m | 0 or なし | リセット(デフォルトへ戻す) |
m | 1 | 太文字 |
m | 2 | 薄く |
m | 3 | イタリック |
m | 4 | アンダーライン |
m | 5 | 点滅 |
m | 6 | 高速点滅 |
m | 7 | 文字と背景の色を反転 |
m | 8 | 非表示 |
m | 9 | 取消線 |
色
\e[m
文字の色の変更
❸ | ❷ | 操作・機能 |
---|---|---|
m | 0;30 or 30 | Black |
m | 0;31 or 31 | Red |
m | 0;32 or 32 | Green |
m | 0;33 or 33 | Brown |
m | 0;34 or 34 | Blue |
m | 0;35 or 35 | Purple |
m | 0;36 or 36 | Cyan |
m | 0;37 or 37 | Light Gray |
m | 1;30 | Dark Gray |
m | 1;31 | Light Red |
m | 1;32 | Light Green |
m | 1;33 | Yellow |
m | 1;34 | Light Blue |
m | 1;35 | Light Purple |
m | 1;36 | Light Cyan |
m | 1;37 | White |
m | 38;5;N | 色拡張①。調整量N(0~255)でカラーコードを指定 |
m | 38;2;R;G;B | 色拡張②。調整量R/G/B(各0~255)をRGBカラーコードで指定 |
背景色の変更
❸ | ❷ | 操作・機能 |
---|---|---|
m | 0;40 or 40 | Black |
m | 0;41 or 41 | Red |
m | 0;42 or 42 | Green |
m | 0;43 or 43 | Brown |
m | 0;44 or 44 | Blue |
m | 0;45 or 45 | Purple |
m | 0;46 or 46 | Cyan |
m | 0;47 or 47 | Light Gray |
m | 1;40 | Dark Gray |
m | 1;41 | Light Red |
m | 1;42 | Light Green |
m | 1;43 | Yellow |
m | 1;44 | Light Blue |
m | 1;45 | Light Purple |
m | 1;46 | Light Cyan |
m | 1;47 | White |
m | 48;5;N | 色拡張①。調整量N(0~255)でカラーコードを指定 |
m | 48;2;R;G;B | 色拡張②。調整量R/G/B(各0~255)をRGBカラーコードで指定 |
カーソル操作
❸ | ❷ | 操作・機能 |
---|---|---|
A | y(移動量) | 現在のカーソルからy行上へ |
B | y(移動量) | 現在のカーソルからy行下へ |
C | x(移動量) | 現在のカーソルからx文字右へ |
D | x(移動量) | 現在のカーソルからx文字左へ |
E | y(移動量) | 現在のカーソルからy行下の先頭へ |
F | y(移動量) | 現在のカーソルからy行上の先頭へ |
G | x(移動量) | 現在の行のx文字目の絶対位置へ |
H | y;x(移動量) | y行目のx文字目の絶対位置へ |
f | y;x(移動量) | Hと同じ |
s | 無し | 現在のカーソルの位置を記憶 |
u | 無し | 記憶していたカーソルの位置に戻る |
s
$ echo -e -n "\e[7B\e[20C\e[1;37m\e[41m---- HELLO, MY FIRST SHELL APP! ----\n\e[4A\e[m"

tputコマンド
tput 〇〇;tput △△;tput □□;...
スクロール操作
❸ | ❷ | 操作・機能 |
---|---|---|
S | y(移動量) | 現在のカーソルからy行下へ |
T | y(移動量) | 現在のカーソルからy行上へ |
出力の削除
❸ | ❷ | 操作・機能 |
---|---|---|
J | 0 or 無し | 現在のカーソルより後方の文字を消去 |
J | 1 | 現在のカーソルより前方の文字を消去 |
J | 2 | 画面全体をクリア |
K | 0 or 無し | 現在のカーソルより後方の行を消去 |
K | 1 | 現在のカーソルより前方の行を消去 |
K | 2 | 行全体を全て |
まとめ
参考サイト
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。