In quali situazioni PS2, PS3, PS4 vengono utilizzate come prompt?


31

Quando accedo alla shell vedo il prompt il cui valore è memorizzato in PS1.

Ho anche incontrato un altro prompt (ma non so quale) quando ho usato la sintassi del documento qui:

bc << HERE
>

Ma questo è tutti i tipi di prompt. Ho incontrato finora. Che tipo di situazioni evocano i diversi tipi di prompt?

Risposte:


43

Ecco cosa dice la documentazione di 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 ``+ ''.

Quindi, PS1è il normale prompt "in attesa di un comando", PS2è il prompt di continuazione che è stato visualizzato dopo aver digitato un comando incompleto, PS3viene visualizzato quando il selectcomando è in attesa di input ed PS4è il prefisso della linea di traccia del debug.

La documentazione che ho citato non lo dice, ma il valore predefinito per PS3in bash è #?:

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

2
perfezionare!!! a cosa serve il comando select?
Abdul Al Hazred,

10
selectè un modo bash per creare semplici menu interattivi, vedere ss64.com/bash/select.html per una descrizione più completa.
dhag,

@dhag, quindi è come if else..?
Pacerier,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.