В каких ситуациях 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продолжения, которую вы увидели после ввода неполной команды, 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
dhag
источник
2
идеальный!!! для чего нужна команда выбора?
Абдул Аль Хазред
10
selectэто простой способ создания простых интерактивных меню, см. ss64.com/bash/select.html для более полного описания.
дхаг
@dhag, так это как if else..?
Pacerier