내 PS1 팁은 다음과 같습니다.
export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;35m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
이는 다음을 나타냅니다.원격으로 완벽함(SSH) 콘솔(PTS):
luis@Chomsky:~$
표시할 수 없지만 전체 프롬프트가 보라색으로 표시됩니다.
문제는 다음과 같습니다.로컬(TTY), 약간의 추악함을 보여줍니다.
;luis@Chomsky: ~luis@Chomsky:~$
역시 표시할 수는 없지만 첫 번째 부분(";"부터 "~"까지)은 색상이 없고 나머지 부분은 보라색입니다.
Additional data:
- Bash 셸 사용:
luis@Chomsky:~$ ps -p$$ -ocmd= -bash
- Ubuntu Desktop 및 Ubuntu Server v14.04 LTS에서 테스트되었습니다.
- 휴대용 ASUS EEE PC 및 VirtualBox 가상 머신에서 (적어도) 테스트되었습니다.
- 나는
export PS1=
에 행을 추가하는 데 사용합니다~/.bashrc
.
왜 이런 일이 발생하는지, 어떻게 해야 하는지 알고 싶습니다.이 문제를 해결하다.
감사해요.
답변1
제어 시퀀스는 \e]0;TITLE\a
많은 터미널 에뮬레이터에서 인식되며 창 제목을 설정합니다. Linux 콘솔은 이 제어 시퀀스를 인식하지 못합니다(어쨌든 제목이 없습니다). 이를 보고 \e]0
"이게 무슨 뜻인지 모르므로 무시하겠습니다"라고 결정하고 다음 텍스트를 인쇄합니다.
현재 터미널에 따라 프롬프트를 다르게 설정해야 합니다.
title_text='\u@\h: \w'
set_title=
case $TERM in
dtterm|rxvt|[Ek]term|*xterm) set_title='\[\e]0;'"$title_text"'\a\]';;
screen) set_title='\[\ek'"$title_text"'\e\\\]';;
esac
PS1="$set_title$PS1"