У яких ситуаціях 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є налагодженням префікса рядка сліду.

Цитата, яку я цитував, не говорить про це, але для 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- це базовий спосіб створення простих інтерактивних меню, див. ss64.com/bash/select.html для більш повного опису.
дхаг

@dhag, Так це як if else..?
Pacerier
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.