RHEL6 및 CentOS 6에서는 다음과 같이 /etc/bashrc
설정합니다 PROMPT_COMMAND
.
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
else
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'
fi
;;
screen)
if [ -e /etc/sysconfig/bash-prompt-screen ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"'
fi
내가 아는 한, 이러한 옵션은 모두 인쇄되어 보이지 않습니다. 무슨 소용이 있나요?
PROMPT_COMMAND
프롬프트가 표시되기 전에( PS1
보통) 이 작업이 수행된다는 것을 알고 있습니다 . 보이지 않는 것을 에코하는 것이 왜 쓸모가 있는지 모르겠습니다.
답변1
\033
(이스케이프된) 문자의 8진수 코드입니다 . 이는 에코 문자열 이 터미널 제어 시퀀스 Esc
라는 좋은 힌트입니다 . PROMPT_COMMAND
예제의 두 시퀀스 모두 터미널 제목을 로 설정하는 것으로 나타납니다 user@host:pwd
.
첫 번째 경우에는 xterm*
창 이름과 아이콘 제목을 설정합니다. 자세한 지침은 목록을 확인하세요.xterm 제어 시퀀스찾을 때까지 아래로 스크롤하세요.OSC Pt;아래에운영 체제 제어(OSC는 ESC ]
, ST는 ESC \
).
두 번째 경우는 screen
터미널 에뮬레이터의 경우입니다.화면 제어 순서, 설명하는ESC _
화면의 하드 상태 설정(간단히 말하면 화면 창의 제목입니다.)