나는 팔로우한다유닉스 시스템게시하고 라인을 추가했습니다.
trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG
내 .bashrc
파일에 넣고 마지막 명령을 터미널 제목으로 설정합니다. 내 우분투 데스크탑에서는 잘 작동합니다.
이 줄을 Centos 서버의 .bashrc
파일에 추가하고 Centos 시스템에 ssh를 추가하면 더 이상 작동하지 않습니다. SSH 클라이언트 헤더가 공백이 되고 모든 명령 후에 모든 쓰레기가 내 콘솔에 인쇄됩니다.
Last login: Sun Jun 7 21:28:29 2015 from sk-box
]2;printf "k%s@%s:%s]0;printf "k%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"[root@sk-vbox ~]# cd
]2;printf "k%s@%s:%s]0;printf "k%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"[root@sk-vbox ~]# pwd
/root
]2;printf "k%s@%s:%s]0;printf "k%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"[root@sk-vbox ~]#
SSH를 통해 동적 헤더가 제대로 작동하도록 할 수 있습니까?
답변1
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG
이 두 명령은 서로 간섭합니다. 이전에 실행된 명령 대신 BASH_COMMAND
최종적으로 포함됩니다 . 헤더 텍스트의 닫는 태그인 백슬래시 확장 벨 문자 가 포함되어 PROMPT_COMMAND
결과 가 매우 혼란스럽습니다 . 프롬프트 앞에 문자열이 표시되고 두 번째 것을 인쇄할 때 벨 소리가 납니다. 또한 .NET에서 추가 수준의 백슬래시 확장을 수행하고 있습니다 .PROMPT_COMMAND
\007
PROMPT_COMMAND
\007
BASH_COMMAND
DEBUG 트랩을 특수 문자를 인쇄하지 않는 보다 강력한 트랩으로 교체하십시오.
trap 'printf "\033]0;%s\007" "${BASH_COMMAND//[^[:print:]]/}"' DEBUG