![Bash/ZSH를 사용하여 문자열에서 ASCII 문자를 올바르게 생성하는 방법은 무엇입니까?](https://linux55.com/image/139184/Bash%2FZSH%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%97%90%EC%84%9C%20ASCII%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EC%98%AC%EB%B0%94%EB%A5%B4%EA%B2%8C%20%EC%83%9D%EC%84%B1%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
( ) 다음 10
에 문자열을 생성하려고 합니다 .NULL
\0
10
하지만 작동하지 않는 것 같습니다. (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'