%s에 .를 추가하면 숫자가 인쇄되지 않는 이유는 무엇입니까?

%s에 .를 추가하면 숫자가 인쇄되지 않는 이유는 무엇입니까?

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

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

printf "%.sI" $(seq 10)

IIIIIIIIII

printf "%sI" $(seq 10)

1I2I3I4I5I6I7I8I9I10I

답변1

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

관계자의 진술printf(3) 맨페이지:

마침표('.') 형식의 선택적 정밀도와 그 뒤에 선택적으로 10진수 문자열이 옵니다.

정밀도가 "."로 지정되거나 정밀도가 음수인 경우 정밀도는 0입니다.

이는 문자열에서 인쇄할 최대 문자 수 sS변환을 제공합니다.

따라서 printf '%.s'동일하게 printf '%.0s'후속 문자열 매개변수의 출력을 억제합니다.

관련 정보