Dalam situasi apa PS2, PS3, PS4 digunakan sebagai prompt?

31

Ketika saya masuk ke shell saya melihat prompt yang nilainya disimpan di PS1.

Saya juga menemukan prompt lain (tetapi tidak tahu yang mana) ketika saya menggunakan sintaks di sini-dokumen:

bc << HERE
>

Tapi itu semua jenis prompt. Saya telah bertemu sejauh ini. Situasi apa yang membangkitkan berbagai jenis bisikan?

Abdul Al Hazred
sumber

Jawaban:

43

Berikut adalah apa yang dikatakan dokumentasi 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 ``+ ''.

Jadi, PS1apakah prompt "waiting for a command" normal Anda, PS2adalah prompt lanjutan yang Anda lihat setelah mengetik perintah yang tidak lengkap, PS3ditampilkan ketika selectperintah sedang menunggu input, dan PS4merupakan awalan garis jejak debugging.

Dokumentasi yang saya kutip tidak mengatakannya, tetapi default untuk PS3dalam bash adalah #?:

$ select x in foo bar baz; do echo $x; done
1) foo
2) bar
3) baz
#? 3
baz
#? 2
bar
#? ^C
Dhag
sumber
2
sempurna!!! untuk apa perintah pilih?
Abdul Al Hazred
10
selectadalah cara bash untuk melakukan menu interaktif sederhana, lihat ss64.com/bash/select.html untuk deskripsi yang lebih lengkap.
Dhag
@ Dhag, Jadi seperti itu if else..?
Pacerier