Как мне сделать, чтобы OS X возвращала заголовок терминала к исходному заголовку при возвращении из ssh?

12

Начиная с OS X, я запускаю ssh в foo (Linux box). Название моего терминала меняется на foo. Затем я ssh в бар (еще одна коробка Linux). Название моего терминала меняется на бар. Я выхожу из бара. Название моего терминала меняется на foo. Я выхожу из foo. Мой заголовок терминала остается foo (вместо того, чтобы вернуться к исходному заголовку). Проблема, очевидно, не в терминале, поскольку он работает правильно при выходе из системы Linux обратно в систему Linux. Вероятно, это не ssh, так как у меня такая же проблема с vim. На мой взгляд, что оставляет раковину. Я использую BASH. Просматривая окружение, я не вижу большой разницы между коробкой Linux и моей OS X. Оба используют СРОК Xterm.

Чес. Owens
источник

Ответы:

14

Добавление

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

чтобы я .bash_profileисправил проблему.

Похоже, что строка в PROMPT_COMMANDвыполняется каждый раз, когда отображается приглашение. Со страницы руководства:

PROMPT_COMMAND

Если установлено, значение выполняется как команда перед выдачей каждого основного приглашения.

Чес. Owens
источник
3
Вы вряд ли войдете в OS X через консоль, но это может произойти. Чтобы предотвратить проблемы в этом случае, я заключаю все это в case "$TERM" in xterm*|rxvt*)тип сделки. Я думаю, что я первоначально получил идею отсюда: tldp.org/HOWTO/Bash-Prompt-HOWTO/…
Telemachus
О, я также считаю, что лучше зайти в настройки Terminal.app (Preferences -> Settings -> Window) и удалить все, что он пытается добавить в строку заголовка, кроме ymmv.
Телемах
Ну, я iTerm.appне использую Terminal.app, и это работает. У вас есть точка зрения о реальном терминале. Моя коробка Linux имеет именно такую ​​проверку, поэтому я добавлю ее в свой профиль, спасибо.
час. Оуэнс