GNU Bash 매뉴얼에 따르면 (섹션 3.1.2.4 ANSI-C 참조) $'\E'는 "이스케이프 문자(ANSI C 아님)"로 확장되어야 합니다. 이 이스케이프 문자는 무엇입니까? 이는 \
뒤에 오는 다음 문자의 리터럴 값을 유지하는 기능을 하는 백슬래시 " " 자체와 동일합니까 ?
예를 들어 echo 명령을 사용하여 터미널에서 이를 어떻게 시연할 수 있습니까?
답변1
$'\E'
대표하다ASCII 이스케이프 문자(예: \x1b
/ \033
/ CtrlV+ Esc) 백슬래시 대신:
% printf '%x\n' \'$'\E'
1b
이 문자의 일반적인 용도는 제어 시퀀스, 즉 다음 바이트 부분의 대체 해석을 나타내는 것입니다. 예를 들어, 쉘 프롬프트의 일부로 자주 사용됩니다.ANSI 이스케이프 시퀀스특정 텍스트에 색상을 지정하도록 터미널에 지시하거나 터미널에 커서 위치를 요청하는 등의 작업을 수행합니다. *
% printf '\033[36m%s\033[0m\n' 'this is in cyan'
this is in cyan
% printf '\033[2J' # clear the screen
tput
* 그러나 이러한 사용 사례의 대부분에서는 일반적으로 인식되고 사용하기 더 직관적인 terminfo를 사용하기를 원합니다 . 그러나 이 두 가지 기본 예는 보편적으로 이해되어야 합니다.