Всегда указывайте флаги конца командной строки при использовании строк, включающих --
.В общем, команды оболочки должны знать, с чего начинается их позиционный аргумент.Таким образом, заставляя --
после printf
, мы даем ему знать, что последующие аргументы должны интерпретироваться как его аргументы.На этом этапе последующее использование --
будет трактоваться буквально, а не рассматриваться как переключатель командной строки.
, поэтому определите printf
как
printf -- "--file=%s " "hello printf" "in" "bash script"
Также, если вы планируетечтобы указать несколько строк аргументов printf
, не включайте их в один и тот же спецификатор формата.Вам может понадобиться это
printf -- "--file=%s %s %s" "hello printf" "in" "bash script"
Подробнее о Команда printf в bash