ฉันพยายามใช้ printf เพื่อจัดรูปแบบเอาต์พุตสวย ๆ ในสคริปต์ทุบตี
เช่น:
-----------------------
| This is some output |
-----------------------
แต่ฉันได้พบพฤติกรรมบางอย่างที่ฉันไม่เข้าใจ
$ printf "--"
ทำให้ฉันมีข้อผิดพลาด printf: usage: printf [-v var] format [arguments]
และ
$ printf "-stuff"
ผลลัพธ์ใน-bash: printf: -s: invalid option
เห็นได้ชัดว่า printf คิดว่าฉันกำลังพยายามผ่านข้อโต้แย้งบางอย่างในขณะที่ฉันไม่ได้
ในขณะเดียวกันโดยบังเอิญฉันพบวิธีแก้ปัญหานี้:
$ printf -- "--- this works now ----\n"
ให้ฉัน--- this works now ----
มีใครอธิบายพฤติกรรมนี้ได้บ้าง
echo
ที่จะล้มเหลวเมื่อทำเช่นecho ------------
นี้ ส่วนใหญ่สนับสนุนเท่านั้น-n
(ไม่มีการขึ้นบรรทัดใหม่), -e
(ตีความเครื่องหมายทับแบคสแลช) และเป็นไปได้-E
(อย่าตีความมัน) และไม่ผิดพลาดเมื่อพบข้อโต้แย้งตัวเลือกอื่นใช่ไหม? (แก้ไข: GNU /bin/echo
ยังสนับสนุน--help
และ--version
.)