Linux/Shell Script
[Shell Script] Escape Sequences
비번변경
2022. 6. 26. 19:43
Escape 문자
Escape 문자는 아래의 경우에서 처리된다.
- echo -e " " 또는 echo -e ' '
- $ ' '
- printf "" 또는 printf ' '
- printf %b
sh에서의 echo " ", echo ' ' 모두 이스케이프 문자를 처리한다. 따라서 -e 옵션이 없다.
Quotes에 따른 escape 문자 처리 비교
echo 명령의 -e 옵션에 따른 escape 문자 처리 해석 시에는 -e 옵션을 제거한 후 명령을 실행해보고 비교하면 된다.
sh와 bash에서 8진수, 16진수 처리
sh에서는 echo, printf에서 16진수를 사용할 수 없다.
bash는 echo, printf, $ ' ' 모두 처리가 조금 다르다.
sh, bash 모두 사용하려면 8진수를 사용해야 한다.
8진수, 16진수의 이스케이프 문자는 아래와 같다.
이스케이프 문자 | 뜻 | 적용 범위 |
\NNN | 8진수 | printf $ ' ' |
\0NNN | 8진수 | echo |
\xHH | 16진수 | * |
Single Quotes
\NNN 8진수가 처리되지 않았다.
$ ' '
\0NNN 8진수가 처리되지 않았다.
printf
\0NNN 8진수가 처리되지 않았다.
printf '%b'
모든 문자가 처리되었다.
참고 문서
https://mug896.github.io/bash-shell/escape_sequences.html