답변:
\e[0;
일반 텍스트 모드를 \e]0;
설정 하지만 창 제목을 설정합니다. ANSI Control Sequence Introducer (CSI, \e[
)와 Operating System Command (OSC, \e]
) 의 차이점 은 중요하지만 놓치기 쉽습니다.
\a
이 특별한 경우 최종 은 종을 울리지 않지만 창 제목의 끝 구분 기호로 이스케이프 시퀀스의 일부입니다.
XTerm (또는이를 에뮬레이트하는 것)에서 창의 제목을 "Hello World"로 설정합니다. \e]
"OSC (operating system command)"에 대한 ASNI 이스케이프 코드입니다. 이는 본질적으로 의미를 정의하는 것이 운영 체제에 달려 있음을 의미합니다. XTerm에서는 <OSC>0;text<bel>
창 제목을 설정하는 데 사용됩니다.
참조 위키 피 디아 , 그리고 에드워드 Moy와의 텀 순서 목록 (이하 "운영 체제 제어"섹션 검색).
\e]0;
유효한 ANSI 코드가 아닙니다. "정상 디스플레이"를 얻으려면이어야 \e[0m
합니다. Ƭᴇcʜιᴇ007의 링크 아래에있는 텍스트에서 알 수 있듯이 동일한 순서로 여러 가지를 결합 할 수 있습니다.
$ echo -en "\ e [0; 31; 7m 테스트 \ e [0m" 테스트 $ _
즉 TEST
역 빨간색 될 것
이스케이프 시퀀스 구문 분석에 대한 -e 필요합니다. -n 에코 가 끝에 (CR +) LF를 인쇄 하지 않도록 합니다.
더 나은 방법은 tput
명령 을 사용하여 terminfo 코드를 사용하는 man 5 terminfo
것입니다. 기술적이지만 상당히 완성 된 것입니다. 왜 풋? 터미널은 항상 ANSI가 아니기 때문에 terminfo는 가능한 한 많은 터미널에 단일 인터페이스를 제공하여이를 수정하려고 시도합니다.
... 그래서 -ANSI 터미널이 있다면- echo "$(tput sgr0)"
와 같습니다 echo -e "\e[0m"
.
printf "\033]0;Hello World\07"
.