![스크립트 명령에서 16진수 문자를 printf에 어떻게 전달합니까?](https://rvso.com/image/231049/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EB%AA%85%EB%A0%B9%EC%97%90%EC%84%9C%2016%EC%A7%84%EC%88%98%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20printf%EC%97%90%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%A0%84%EB%8B%AC%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20.png)
스크립트에서 실행할 때 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