เนื่องจากฉันแนะนำprintf
ในความคิดเห็นฉันอาจให้ตัวอย่างของการใช้งาน (แม้ว่าสำหรับการพิมพ์ข้อความการใช้งานฉันมีแนวโน้มที่จะใช้คำตอบของ Dennis 'หรือ Chris') เป็นบิตที่ซับซ้อนมากขึ้นกว่าที่จะใช้printf
echo
อาร์กิวเมนต์แรกคือสตริงรูปแบบซึ่ง\n
มีการตีความescapes (เช่น) เสมอ ; มันยังสามารถมีคำสั่งรูปแบบเริ่มต้นด้วย%
ซึ่งควบคุมที่ไหนและอย่างไรข้อโต้แย้งเพิ่มเติมจะรวมอยู่ในมัน ต่อไปนี้เป็นวิธีที่แตกต่างกันสองวิธีในการใช้ข้อความการใช้
ก่อนอื่นคุณสามารถรวมข้อความทั้งหมดในสตริงรูปแบบ:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: \nup home page: \n"
โปรดทราบว่าไม่เหมือนecho
กันคุณต้องรวมบรรทัดใหม่สุดท้ายไว้อย่างชัดเจน นอกจากนี้ถ้าข้อความที่เกิดขึ้นกับมีการใด ๆตัวละครที่พวกเขาจะต้องมีการเขียนเป็น%
%%
หากคุณต้องการรวมที่อยู่บั๊กพอร์ตและที่อยู่โฮมเพจไว้พวกเขาสามารถเพิ่มได้อย่างเป็นธรรมชาติ:
printf "usage: up [--level <n>| -n <levels>][--help][--version]\n\nReport bugs to: %s\nup home page: %s\n" "$bugreport" "$homepage"
ประการที่สองคุณสามารถใช้สตริงรูปแบบเพื่อพิมพ์อาร์กิวเมนต์เพิ่มเติมแต่ละบรรทัดแยกกัน:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: " "up home page: "
ด้วยตัวเลือกนี้การเพิ่มที่อยู่ของรายงานบั๊กและหน้าแรกจะค่อนข้างชัดเจน:
printf "%s\n" "usage: up [--level <n>| -n <levels>][--help][--version]" "" "Report bugs to: $bugreport" "up home page: $homepage"
echo >&2 ...