In welchen Situationen wird PS2, PS3, PS4 als Eingabeaufforderung verwendet?

31

Wenn ich mich in der Shell anmelde, sehe ich die Eingabeaufforderung, deren Wert in PS1 gespeichert ist.

Ich bin auch auf eine andere Eingabeaufforderung gestoßen (weiß aber nicht, welche), als ich die Here-Document-Syntax verwendet habe:

bc << HERE
>

Aber das sind alle Arten von Eingabeaufforderungen. Bin ich bisher begegnet Welche Situationen rufen die verschiedenen Arten von Aufforderungen hervor?

Abdul Al Hazred
quelle

Antworten:

43

Folgendes steht in der Bash-Dokumentation:

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 ``+ ''.

Ist PS1Ihre normale Eingabeaufforderung "Warten auf einen Befehl" PS2die Fortsetzung, die Sie nach der Eingabe eines unvollständigen Befehls sahen, PS3die angezeigt wird, wenn der selectBefehl auf Eingabe wartet, und PS4das Präfix für die Debugging-Ablaufverfolgung.

Die Dokumentation, die ich zitiert habe, sagt das nicht, aber die Standardeinstellung für PS3in bash ist #?:

$ select x in foo bar baz; do echo $x; done
1) foo
2) bar
3) baz
#? 3
baz
#? 2
bar
#? ^C
dhag
quelle
2
perfekt!!! Wofür ist der Befehl select?
Abdul Al Hazred
10
selectist eine einfache Methode, um einfache interaktive Menüs zu erstellen. Eine ausführlichere Beschreibung finden Sie unter ss64.com/bash/select.html .
Dhag
@dhag, also ist es wie if else..?
Pacerier