Tbpgr Blog

Recruiting Operations tbpgr(てぃーびー) のブログ

bash | プロンプト変数

概要

プロンプト変数

詳細

PS1,PS2,PS3,PS4があり、任意のフォーマットを設定できる。

PS1は標準のプロンプト。

PS2はセカンダリプロンプトと呼ばれ、デフォルトは「>」。
コマンドが2行目以上になった際に表示される。

PS3はselectで使用されるプロンプト。

PS4はデバッグモードで使用される。

PS1設定例

PS1のプロンプトが「$」の状態から「入力しさらせ:」に変更した場合

$
$PS1=入力しさらせ:
入力しさらせ:
入力しさらせ:echo hoge
hoge
入力しさらせ:
PS2設定例

PS2のプロンプトが「>」の状態から「次も入力せい:」に変更した場合

入力しさらせ:PS2=次も入力せい:
入力しさらせ:
入力しさらせ:echo hoge1\
次も入力せい:hoge2
hoge1hoge2
入力しさらせ:
PS3設定例

コード

#!/bin/sh
PS3=選んでよ:
select val in {a..z}
do
  echo "you choose $val"
  break
done

実行例

$./variable.sh
1) a    4) d   7) g  10) j  13) m  16) p  19) s  22) v  25) y
2) b    5) e   8) h  11) k  14) n  17) q  20) t  23) w  26) z
3) c    6) f   9) i  12) l  15) o  18) r  21) u  24) x
選んでよ:22
you choose v
PS4設定例
$bash -x ./variable.sh
+ PS3=$'\351\201\270\343\202\223\343\201\247\343\202\210\357\274\232'
+ select val in '{a..z}'
1) a    4) d   7) g  10) j  13) m  16) p  19) s  22) v  25) y
2) b    5) e   8) h  11) k  14) n  17) q  20) t  23) w  26) z
3) c    6) f   9) i  12) l  15) o  18) r  21) u  24) x
選んでよ:1
+ echo 'you choose a'
you choose a
+ break