스크립트 명령에서 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은 sh에 연결되어 있습니다 dash.

내장 dashprintf모르므 \xNN로 대신 8진수 값을 사용해야 합니다 \0NN.

내장 bashprintf알고 있다\xNN

관련 정보