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?
echo
yang 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/echo
juga mendukung --help
dan --version
.)