스크립트에서 실행할 때 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
.
dash
내장 함수는 printf
이를 모르므 \xNN
로 대신 8진수 값을 사용해야 합니다 \0NN
.
내장은 알고 bash
있다printf
\xNN