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

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

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

하지만 작동하지 않는 것 같습니다. (a 다음에 a echo "10\010"가 오는 두 문자를 생성하는 것 같습니다 . 이러한 값/문자를 분리/이스케이프하는 방법을 모르겠습니다.10\010

나는 또한 echo "10""/0""10"같은 결과를 가지고 이것을 시도했습니다.

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

답변1

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

echo '10\000010'

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

귀하의 경우 문제는 포함되지 않은 UNIX 변형을 구현하는 데 필요한 지원이 bash없기 때문에 POSIX와 호환되지 않는다는 것입니다.XSI

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

printf '10\00010\n'

관련 정보