스크립트 명령에서 16진수 문자를 printf에 전달하는 방법은 무엇입니까? [복사]

스크립트 명령에서 16진수 문자를 printf에 전달하는 방법은 무엇입니까? [복사]

스크립트에서 실행할 때 printf가 16진수 문자를 출력하도록 하려면 어떻게 해야 합니까?

프롬프트에 입력한다고 가정해 보겠습니다. printf "\x41\x42"내가 얻는 결과

 AB%

cat test.sh그러나 다음 줄을 포함하는 스크립트가 있는 경우

printf "\x41\x42"

하지만 스크립트를 실행하면./test.sh생산하다

\x41\x42%

스크립트가 쉘 프롬프트와 동일한 결과를 생성하도록 하려면 어떻게 해야 합니까?

답변1

외부 printf유틸리티를 사용해 보십시오.

/usr/bin/printf "\x41\x42"

쉘이 있을 수 있지만 bash대화형 쉘로서 while shdash.

dash내장 함수는 printf이를 모르므 \xNN로 대신 8진수 값을 사용해야 합니다 \0NN.

내장은 알고 bash있다printf\xNN

관련 정보