คำตอบของ JohnCอธิบายถึง backtick แล้ว แต่สิ่งที่คุณสงสัยเกี่ยวกับก็คือ>
พรอมต์ นี้พรอมต์ต่อเนื่องและจะไม่เรียกโดยเฉพาะ backtick แต่เสมอเมื่อเปลือกของคุณรู้ได้อย่างชัดเจนคุณไม่ได้กระทำการป้อนคำสั่ง ตัวอย่างที่ง่ายที่สุดคือการวางความต่อเนื่องของบรรทัดที่ชัดเจน\
ที่ท้ายบรรทัดอินพุต (ซึ่งช่วยแยกอินพุตยาว):
$ echo \
> hallo
โปรดทราบว่าเช่นเดียวกับPS1
การควบคุมรูปลักษณ์ของพรอมต์คำสั่งคุณสามารถตั้งค่าPS2
ให้เปลี่ยนพรอมต์การดำเนินการต่อเช่น
$ export PS2="(cont.) "
$ echo \
(cont.) hallo
มีสาเหตุหลายประการที่ทำให้ความต่อเนื่องเกิดขึ้น backtick เดียวไม่สมบูรณ์ แต่คุณสามารถป้อนบางอย่างเช่น
ls -l `which cp`
ในบรรทัดเดียว (หมายเหตุด้านข้าง: แนะนำให้ใช้$(
และ)
แทนเนื่องจากวงเล็บทำให้เห็นได้อย่างชัดเจนว่าการขยายตัวเริ่มต้นและสิ้นสุดในขณะที่ backticks เดียวทำให้ยากต่อการดูว่าใครหายไปและทำรัง ... ) สาเหตุที่เป็นไปได้อื่น ๆ สำหรับการแจ้งเตือนความต่อเนื่อง:
- หายไป
done
หลังจากwhile
หรือfor
- หายไป
fi
หลังจากif
- หายไป
esac
หลังจากcase
- วงเล็บปิดที่ขาดหายไปเช่นใน subshells
(cd $HOME; cat .bashrc)
- คำสั่งที่หายไปหลังจากการไพพ์
|
เช่นเดียวกับการดำเนินการตามเงื่อนไข||
และ&&
(ไม่ใช่&
เพราะนั่นเป็นเพียงการทำให้คำสั่งทำงานในพื้นหลัง)
- อ้างปิดที่ขาดหายไป (
'
หรือ"
)
พอทราบอย่างชัดเจนวงเล็บปีกกาที่ขาดหายไป}
หลังจากการขยายตัวแปร${
ยังทำให้เกิดพรอมต์ต่อเนื่อง แต่จะล้มเหลวเนื่องจากพื้นที่ที่แทรกไว้:
$ echo ${
> PS2}
bash: ${
PS2}: bad substitution