OS Xから始めて、私はfoo(Linuxボックス)にSSH接続します。ターミナルのタイトルがfooに変わります。次に、bar(別のLinuxボックス)にSSH接続します。ターミナルのタイトルがバーに変わります。バーからログアウトします。ターミナルのタイトルがfooに変わります。 fooからログアウトします。私の端末のタイトルは(元のタイトルに戻るのではなく)fooのままです。 LinuxボックスからログアウトしてLinuxボックスに戻ると正しく機能するため、問題は明らかに端末にはありません。私はvimで同じ問題を抱えているので、おそらくsshではありません。私の心の中でそれはシェルを去ります。私はBASHを使用しています。環境を見ると、LinuxボックスとOSXボックスの間に大きな違いは見られません。どちらもxtermのTERMを使用しています。
追加する
export Prompt_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
私の.bash_profile
に問題を修正しました。
プロンプトが表示されるたびに、Prompt_COMMAND
の文字列が実行されているように見えます。マニュアルページから:
Prompt_COMMAND
設定されている場合、値は各プライマリプロンプトを発行する前にコマンドとして実行されます。
私はこの問題のより良い解決策を見つけました。 OSXは、このシステム全体の構成を使用します。
Prompt_COMMAND="update_terminal_cwd${Prompt_COMMAND:+; $Prompt_COMMAND}"
関数update_terminal_cmd
は/etc/bashrc_Apple_Terminal
で宣言されています。したがって、Prompt_COMMAND
をリセットしてターミナル設定を壊したくない場合は、~/.profile
または~/.bashrc
の最後に次の行を追加できます。
my_update_terminal_cwd() {
update_terminal_cwd # call system wide function
printf '\e]0;\a' # reset additional title after SSH session
}
Prompt_COMMAND="my_update_terminal_cwd${Prompt_COMMAND:+; $Prompt_COMMAND}"
例: