Próbuję użyć printf do sformatowania jakiegoś ładnego wyniku w skrypcie bash
na przykład:
-----------------------
| This is some output |
-----------------------
Ale potknąłem się o pewne zachowania, których nie rozumiem.
$ printf "--"
daje mi błąd printf: usage: printf [-v var] format [arguments]
i
$ printf "-stuff"
wyniki w-bash: printf: -s: invalid option
Najwyraźniej printf uważa, że próbuję przekazać pewne argumenty, a ja nie.
Tymczasem zupełnie przypadkowo znalazłem to obejście:
$ printf -- "--- this works now ----\n"
daje mi--- this works now ----
Czy ktoś może wyjaśnić to zachowanie?
echo
które się nie powiedzie echo ------------
? Większość obsługuje tylko -n
(nie ma końca nowej linii), -e
(interpretuje znaki specjalne z odwrotnym ukośnikiem) i jest możliwa -E
(NIE interpretuje ich) i nie popełnia błędów, gdy napotkane zostaną inne argumenty podobne do opcji, prawda? (EDYCJA: GNU /bin/echo
obsługuje również --help
i --version
.)