การขยายตัวของตัวแปร${parameter:-word}
จะใช้ค่าของ$parameter
ถ้ามันเป็นชุดและไม่ใช่ null (ไม่สตริงที่ว่างเปล่า) word
มิฉะนั้นจะใช้สตริง
การข้าม:
จะไม่ทดสอบว่าค่าว่างเปล่าหรือไม่เท่านั้นไม่ว่าจะเป็นค่านั้น
ซึ่งหมายความว่า${PS1-}
จะขยายเป็นค่า$PS1
หากตั้งไว้ แต่เป็นสตริงว่างถ้าว่างหรือไม่ได้ตั้งค่า ในกรณีนี้เป็นเหมือนกันในฐานะ${PS1:-}
เป็นสตริงหลังจากที่-
ยังเป็นที่ว่างเปล่า
ความแตกต่างระหว่าง"${PS1-}"
และ"$PS1"
มีความละเอียดอ่อนตามที่ @Rakesh Sharma หมายเหตุ: ทั้งสองจะขยายเป็นค่าของ$PS1
หรือเป็นสตริงว่างถ้ามันไม่มีการตั้งค่า ยกเว้นเมื่อset -u
มีการใช้งานในกรณีที่การขยายตัวแปรล้างจะทำให้เกิดข้อผิดพลาด ค่าเริ่มต้น (ว่าง) ตั้งโดย"${PS1-}"
หลีกเลี่ยงสิ่งนี้ขยายการตั้งค่าPS1
เป็นสตริงว่างโดยไม่มีข้อผิดพลาด
นี่คือไวยากรณ์มาตรฐาน ( มีต้นกำเนิดในเชลล์เป้าหมายในช่วงปลายยุค 70 ) ซึ่งเป็นส่วนขยายอื่น ๆ ที่คล้ายกันสองสามรายการ