Я пытаюсь использовать printf для форматирования довольно симпатичного вывода в скрипте bash
например:
-----------------------
| 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.)