Я намагаюся використовувати 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
.)