Bash/ZSH를 사용하여 문자열에 ASCII 문자를 올바르게 생성하는 방법은 무엇입니까?

Bash/ZSH를 사용하여 문자열에 ASCII 문자를 올바르게 생성하는 방법은 무엇입니까?

( ) 다음 10에 가 오는 문자열을 생성하려고 합니다 .NULL\010

그러나 echo "10\010"작동하지 않는 것 같습니다. 두 개의 문자가 생성되는 것 같습니다. a 10뒤에 \010. 이 값/문자를 분리/이스케이프하는 방법을 잘 모르겠습니다.

나는 또한 echo "10""/0""10"같은 결과를 얻었습니다.

이 출력을 명명된 파이프로 파이프하고 있습니다.

답변1

POSIX 호환 셸에서는 다음을 사용할 수 있습니다.

echo '10\000010'

8진수 이스케이프 시퀀스를 종료하려면 a echo뒤에 3개의 8진수가 필요합니다 .\0

귀하의 경우 문제는 이 경우 비임베디드 UNIX 변형에 필요한 지원을 bash구현하지 않기 때문에 POSIX와 호환되지 않는다는 것입니다.XSI

bash그러나 부분적으로 지원하므로 printf다음을 사용할 수 있습니다.

printf '10\00010\n'

관련 정보