シェルにログオンすると、PS1に値が保存されているプロンプトが表示されます。
また、ヒアドキュメントの構文を使用すると、別のプロンプトが表示されます(ただし、どのプロンプトが表示されるかはわかりません)。
bc << HERE
>
しかし、それはすべての種類のプロンプトです。これまでに出会ったことがあります。どのような状況でさまざまな種類のプロンプトが呼び出されますか?
シェルにログオンすると、PS1に値が保存されているプロンプトが表示されます。
また、ヒアドキュメントの構文を使用すると、別のプロンプトが表示されます(ただし、どのプロンプトが表示されるかはわかりません)。
bc << HERE
>
しかし、それはすべての種類のプロンプトです。これまでに出会ったことがあります。どのような状況でさまざまな種類のプロンプトが呼び出されますか?
回答:
bashのドキュメントには次のように書かれています:
PS1 The value of this parameter is expanded (see PROMPTING below)
and used as the primary prompt string. The default value is
``\s-\v\$ ''.
PS2 The value of this parameter is expanded as with PS1 and used as
the secondary prompt string. The default is ``> ''.
PS3 The value of this parameter is used as the prompt for the select
command (see SHELL GRAMMAR above).
PS4 The value of this parameter is expanded as with PS1 and the
value is printed before each command bash displays during an
execution trace. The first character of PS4 is replicated mul‐
tiple times, as necessary, to indicate multiple levels of indi‐
rection. The default is ``+ ''.
したがって、PS1
通常の「コマンド待機」プロンプトPS2
は、不完全なコマンドを入力した後に表示される継続プロンプトであり
PS3
、select
コマンドが入力を待機して
いるときに表示されPS4
、デバッグトレースラインプレフィックスです。
私が引用したドキュメントではそうは言っていませんが、PS3
bashのデフォルト
は#?
次のとおりです。
$ select x in foo bar baz; do echo $x; done
1) foo
2) bar
3) baz
#? 3
baz
#? 2
bar
#? ^C
if else..
ですか?