PS2、PS3、PS4はどの状況でプロンプトとして使用されますか?


31

シェルにログオンすると、PS1に値が保存されているプロンプトが表示されます。

また、ヒアドキュメントの構文を使用すると、別のプロンプトが表示されます(ただし、どのプロンプトが表示されるかはわかりません)。

bc << HERE
>

しかし、それはすべての種類のプロンプトです。これまでに出会ったことがあります。どのような状況でさまざまな種類のプロンプトが呼び出されますか?

回答:


43

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は、不完全なコマンドを入力した後に表示される継続プロンプトであり PS3selectコマンドが入力を待機して いるときに表示されPS4、デバッグトレースラインプレフィックスです。

私が引用したドキュメントではそうは言っていませんが、PS3bashのデフォルト は#?次のとおりです。

$ select x in foo bar baz; do echo $x; done
1) foo
2) bar
3) baz
#? 3
baz
#? 2
bar
#? ^C

2
パーフェクト!!! selectコマンドとは何ですか?
アブドゥルアルハズレッド

10
selectは、シンプルなインタラクティブメニューを実行するためのbash方法です。より完全な説明については、ss64.com / bash / select.htmlを参照してください。
ダグ

@dhag、それは次のようなものif else..ですか?
パセリエ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.