Почему добавление . в %s препятствует печати числа?

Почему добавление . в %s препятствует печати числа?

Я пытаюсь изучить команды в Bash и наткнулся на эти примеры. Почему добавление a '.'не позволяет вывести порядковый номер?

Это то поведение, которое мне нужно, но я не смог ничего найти настраница руководства.

printf "%.sI" $(seq 10)

IIIIIIIIII

printf "%sI" $(seq 10)

1I2I3I4I5I6I7I8I9I10I

решение1

printfпозволяет указать точность, применимую даже для строк:

Соответствующие заявления отстраница руководства printf(3):

Необязательная точность в виде точки ('.'), за которой следует необязательная строка десятичных цифр.

Если точность указана просто как «.» или точность отрицательная, то точность принимается равной нулю.

Это дает ... максимальное количество символов, которые можно напечатать из строки для sи Sпреобразований.

Так что printf '%.s'эквивалентно printf '%.0s', что подавляет вывод из последующего строкового параметра.

Связанный контент