Mam następującą linię:
printf "---- %.55s\n" "$1 --------------"
Po uruchomieniu tego w bash pojawia się następujący błąd:
printf: -: nieprawidłowa opcja printf: użycie: printf [-v var] format [argumenty]
Jest tak, ponieważ (myślę) printf interpretuje ciąg „----” jako początek argumentu. Próbowałem uciec przed tym za pomocą „\”:
printf "\---- %.55s\n" "$1 --------------"
Oto wynik:
\---- content of $1 -------
Jak widać „\” stało się częścią wyjścia, czego nie chcę.
Pytanie brzmi: jak mogę przekonać printf, że nie próbuję przekazać długiego argumentu ?
-ciągu formatu formatem jego ósemkowej reprezentacji (tutaj,\055) powinno działać. Jednak nie jest to najczystsze. Jak wprintf '\055\055\055\055\055 %.55s\n' "$1 --------------"