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자리를 의미한다


'unix and linux' 카테고리의 다른 글

export -p  (0) 2017.01.31
프롬프팅(prompting) PS1, PS2  (0) 2017.01.31
echo 이스케이프 - \c  (0) 2017.01.23
echo 와 >& 팁  (0) 2017.01.19
네트워크 카드의 네트워크 트래픽 확인하기 - iftop  (0) 2017.01.19
sar를 대체할 수 있는 dstat  (0) 2017.01.19
Posted by 김용환 '김용환'