Я намагаюся використовувати 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(НЕ інтерпретуйте їх) і не помиляйтесь, коли трапляються інші параметри, схожі на параметри, так? (EDIT: GNU /bin/echoтакож підтримує --helpі --version.)