Saya mencoba menggunakan printf untuk memformat beberapa output cantik dalam skrip bash
misalnya:
-----------------------
| This is some output |
-----------------------
Tetapi saya telah menemukan beberapa perilaku yang tidak saya mengerti.
$ printf "--" memberi saya kesalahan printf: usage: printf [-v var] format [arguments]
dan
$ printf "-stuff"menghasilkan-bash: printf: -s: invalid option
Jadi rupanya printf berpikir saya sedang mencoba untuk melewati beberapa argumen sementara saya tidak.
Sementara itu, sepenuhnya secara tidak sengaja, saya telah menemukan solusi ini:
$ printf -- "--- this works now ----\n"beri saya--- this works now ----
Adakah yang bisa menjelaskan perilaku ini?
echoyang akan gagal saat melakukan echo ------------? Sebagian besar hanya mendukung -n(tidak ada trailing baris baru), -e(menafsirkan karakter backslash-escaped) dan mungkin -E(JANGAN menafsirkannya) dan jangan salah ketika argumen opsi-suka lain ditemukan, bukan? (EDIT: GNU /bin/echojuga mendukung --helpdan --version.)