เมื่อฉันเข้าสู่เชลล์ฉันเห็นพรอมต์ที่มีค่าถูกเก็บไว้ใน PS1
ฉันยังพบพรอมต์อื่น (แต่ไม่ทราบว่าอันไหน) เมื่อฉันใช้ไวยากรณ์เอกสารที่นี่:
bc << HERE
>
แต่นั่นคือพรอมต์ทุกประเภท ฉันเคยพบมาแล้ว สถานการณ์ประเภทใดทำให้เกิดพรอมต์ที่แตกต่างกัน
เมื่อฉันเข้าสู่เชลล์ฉันเห็นพรอมต์ที่มีค่าถูกเก็บไว้ใน PS1
ฉันยังพบพรอมต์อื่น (แต่ไม่ทราบว่าอันไหน) เมื่อฉันใช้ไวยากรณ์เอกสารที่นี่:
bc << HERE
>
แต่นั่นคือพรอมต์ทุกประเภท ฉันเคยพบมาแล้ว สถานการณ์ประเภทใดทำให้เกิดพรอมต์ที่แตกต่างกัน
คำตอบ:
นี่คือสิ่งที่เอกสารทุบตีพูดว่า:
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
select
เป็นวิธีทุบตีในการทำเมนูแบบโต้ตอบอย่างง่ายดูss64.com/bash/select.htmlสำหรับคำอธิบายที่สมบูรณ์ยิ่งขึ้น
if else..
อย่างไร