Terminal.appのタイトルにexit後もssh先のホスト名が残って困る

http://www.yuyarin.net/screenshot/20101111053527.png

Linux(Debian系) に ssh すると Terminal.app のタイトル(Title)に ssh 先のホスト名が表示されて,exit した後も残り続ける(図右).一方で BSD 系に ssh した場合はそもそもタイトルに表示されない場合が多い(図左).

これは Linux がデフォで用意してくれる .bashrc の以下の行が原因である.

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'

この行をコメントアウトすればそもそもホスト名が表示されなくなる.

しかしそれでも困る. ssh している間だけは表示させたい.

Terminal.app で使用している zsh の .zshrc の precmd 関数に以下の echo 文を書いておけば,コマンドを実行する前にタイトルがクリアされるので exit 後にホスト名が残らなくて済む.

function precmd() {
  echo -ne "\033]0;\007"
}

bash は PROMPT_COMMAND にコマンドをセットするんだっけ?

もしくは ssh 先のマシンの .bash_logout みたいなのにクリアするコマンドを書いておくのもあり.

後はログイン先の BSDLinux の .bashrc 同様の PROMPT_COMMAND, precmd を書いておけばタイトルでホスト名が区別できる.

thanks to @AoiMoe and @k_akashi