Я пытаюсь изучить команды в Bash и наткнулся на эти примеры. Почему добавление a '.'
не позволяет вывести порядковый номер?
Это то поведение, которое мне нужно, но я не смог ничего найти настраница руководства.
printf "%.sI" $(seq 10)
IIIIIIIIII
printf "%sI" $(seq 10)
1I2I3I4I5I6I7I8I9I10I
решение1
printf
позволяет указать точность, применимую даже для строк:
Соответствующие заявления отстраница руководства printf(3):
Необязательная точность в виде точки ('.'), за которой следует необязательная строка десятичных цифр.
Если точность указана просто как «.» или точность отрицательная, то точность принимается равной нулю.
Это дает ... максимальное количество символов, которые можно напечатать из строки для
s
иS
преобразований.
Так что printf '%.s'
эквивалентно printf '%.0s'
, что подавляет вывод из последующего строкового параметра.