printf "$V"는 다음과 같은 경우에 실패합니다: '^+%&/%+^

printf "$V"는 다음과 같은 경우에 실패합니다: '^+%&/%+^

피하다\N:
사용"인쇄 기능"대신에"에코"

놓다

IFS='' read -r -d '' V <<'EOF'
'^+%&/%+^
EOF

테스트에코(잘 작동해요)

echo "$V"
'^+%&/%+^

테스트인쇄 기능(실패하다)

printf "$V"
bash: printf: `&': invalid format character

답변1

첫 번째 인수는 printf형식 문자열로 해석되며 %&잘못된 형식 지정자입니다.

이 시도:

printf '%s' "$V"

수행되는 포맷 작업은 printf매뉴얼이나 쉘 매뉴얼에서 설명되어야 합니다. printf(1)%s형식은 단지 "문자열이 필요함"을 의미합니다. 기본적으로 printf유틸리티는 개행 문자를 추가하지 않습니다.

관련 정보