왜 . %s에서 숫자가 인쇄되지 않도록 하시겠습니까?

왜 . %s에서 숫자가 인쇄되지 않도록 하시겠습니까?

Bash에서 명령을 배우려고 노력 중인데 이러한 예제를 발견했습니다. 추가하면 '.'시퀀스 번호가 인쇄되지 않는 이유는 무엇입니까?

이것이 내가 원하는 동작이지만, 아무것도 찾을 수 없습니다맨 페이지.

printf "%.sI" $(seq 10)

IIIIIIIIII

printf "%sI" $(seq 10)

1I2I3I4I5I6I7I8I9I10I

답변1

printf문자열에도 적용할 수 있는 정밀도를 지정할 수 있습니다.

관련 진술printf(3) 맨페이지:

마침표('.') 뒤에 선택적 10진수 문자열이 오는 형식의 선택적 정밀도입니다.

정밀도가 '.'로 지정되거나 정밀도가 음수인 경우 정밀도는 0으로 간주됩니다.

s이는 변환 및 문자열에서 인쇄할 최대 문자 수를 제공합니다 S.

So는 후속 문자열 매개변수의 출력을 억제하는 printf '%.s'와 동일합니다 .printf '%.0s'

관련 정보