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

Single Quotes 진수 처리

\NNN 8진수가 처리되지 않았다.

 

 

$ ' '

$ ' ' 진수 처리

\0NNN 8진수가 처리되지 않았다.

 

printf 

\0NNN 8진수가 처리되지 않았다.

 

printf '%b'

모든 문자가 처리되었다.

 

 

참고 문서

https://mug896.github.io/bash-shell/escape_sequences.html