Bash에서 printf 사용하기

Bash에서 printf 사용하기

Bash에서 printf를 사용할 때 항상 아래와 같이 형식 문자열을 제공해야 합니다.

printf "" "V01 Oct 2021"

아니면 printf "V01 Oct 2021"여전히 가능합니까?

답변1

형식 문자열을 사용하는 것이 좋습니다 printf. 예를 들어,

printf '%s' 'V01 Oct 2021'        # V01 Oct 2021

빈 형식 문자열을 사용하면 인수를 인쇄하라는 명령이 없기 때문에 빈 결과를 얻게 됩니다.

printf '' 'V01 Oct 2021'          # (nothing)

다음 경우에는 문자열에 형식 제어 문자가 포함되어 있지 않으므로 매개변수 값 없이 형식 문자열만 사용할 수 있습니다.

printf 'V01 Oct 2021'             # V01 Oct 2021

그러나 변수를 삽입하려면 다음을 수행해야 합니다.안 돼요-or 로 끝나고 %or 문자(또는 bash의 내장 구현을 포함하여 대부분의 구현 인코딩을 포함하는 다른 문자 인코딩 \) 를 포함 하는 경우를 대비하여 형식 문자열에 추가합니다 . 예를 들어,%\printf

d=5; a="Increase by $d%"

printf "$a"                       # -bash: printf: `%': missing format character
printf "$a\n"                     # -bash: printf: `\': invalid format character
printf '%s\n' "$a"                # Increase by 5%
printf 'Increase by %d%%\n' "$d"  # Increase by 5%

두 번째 예에서는 그 \n자체로 잘못된 것은 아니지만 %끝에 있는 기호가 $a혼란스럽습니다 printf.

관련 정보