ฉันพยายามใช้ 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.)