unix and linux
echo 이스케이프 - \c
'김용환'
2017. 1. 23. 13:32
echo문을 사용해 yes/no와 같은 답을 얻어야 할 때가 있다.
echo "yes/no" 라고 실행하면 개행 문자가 들어가기 때문에 다음 라인에 yes 또는 no를 입력하게 된다.
이런 불편함을 없애기 위해 \c 이스케이프를 사용할 수 있다.
이스케이프를 쓰려면 유닉스 계열마다 다르게 동작하는 부분이 있다.
$ echo "(yes/no)?"
(yes/no)?
$ echo "(yes/no)?\c"
(yes/no)?\c
맥이나 센트OS에서는 -e를 매개변수로 사용하면 이스케이프 처리된다.
$ echo -e "(yes/no)?\c"
(yes/no)? $
이를 근거로 read 커맨드를 같이 활용하면 다음과 같이 사용가능하다.
$ echo -e "(yes/no)?\c" ; read answer ; echo "$answer"
(yes/no)?yes
yes
이스케이프 문자를 조사하니 다음과 같다.
문자 | 출력 |
\b | 백스페이스 |
\c | 새로운 라인을 종료하지 않는 라인 |
\f | 폼피드 |
\n | 새로운 라인 |
\r | 캐리지 리턴 |
\t | 탭 문자 |
\\ | 백슬래시 문자 |
\0nnn | 해당 문자의 ascii 값은 nnn이고 nnn은 8진수로 1자리부터 3자리를 의미한다 |