ในสถานการณ์ใดที่ใช้ PS2, PS3, PS4


31

เมื่อฉันเข้าสู่เชลล์ฉันเห็นพรอมต์ที่มีค่าถูกเก็บไว้ใน PS1

ฉันยังพบพรอมต์อื่น (แต่ไม่ทราบว่าอันไหน) เมื่อฉันใช้ไวยากรณ์เอกสารที่นี่:

bc << HERE
>

แต่นั่นคือพรอมต์ทุกประเภท ฉันเคยพบมาแล้ว สถานการณ์ประเภทใดทำให้เกิดพรอมต์ที่แตกต่างกัน

คำตอบ:


43

นี่คือสิ่งที่เอกสารทุบตีพูดว่า:

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ในทุบตีคือ#?:

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

2
ที่สมบูรณ์แบบ !!! คำสั่ง select สำหรับทำอะไร
Abdul Al Hazred

10
selectเป็นวิธีทุบตีในการทำเมนูแบบโต้ตอบอย่างง่ายดูss64.com/bash/select.htmlสำหรับคำอธิบายที่สมบูรณ์ยิ่งขึ้น
dhag

@dhag ดังนั้นมันเป็นif else..อย่างไร
Pacerier
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.