Заголовок окна Bash не восстанавливается после выхода

1

У меня есть проблема с заголовком окна в окне терминала на OS X:

  1. Запустить Терминал. Название окна "bash"
  2. Введите «ssh external» для подключения к внешнему серверу. Заголовок окна "user @ external: ~"
  3. Типа «выход». Теперь я вернулся на свой локальный компьютер, но заголовок окна по-прежнему гласит «user @ external: ~».

Как сделать так, чтобы заголовок окна возвращался к «bash», что, как я полагаю, будет правильным, поскольку я вышел из системы с внешнего сервера и вернулся на свою локальную машину?

Мой ~ / .bash_profile имеет то же значение PS1:

экспорт PS1 = '\ w $'

forthrin
источник

Ответы:

0

Вы определяете заголовок, выводя специально сформулированную строку на ваш терминал.

Вы можете определить:

function update_title {
   echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007" ;
}

а затем используйте:

update_title

каждый раз, когда вы хотите обновить его.

Если вы хотите, чтобы оно обновлялось «все время», вы можете использовать поддержку вашей оболочки для функций «непосредственно перед отображением подсказки». напр., в (довольно приличном) bash:

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

Но я нахожу это немного излишним: он устанавливает название раньше каждый не только когда нужно ...

Olivier Dulac
источник
Таким образом, вы могли бы сказать, что причина этого заключается в том, что приглашение устанавливается при входе, а не при выходе?
forthrin
не совсем, но в твоем случае так кажется.
Olivier Dulac
Возможно, он установлен в ваших сценариях входа? (трудно сказать, что именно происходит, можно установить в разных местах)
Olivier Dulac
0

Вот функция, которая устанавливает заголовок для любой заданной вами строки, или имя хоста и текущий каталог, если вы не указали заголовок. Я называю это "xst" для "xterm set title".

xst () 
{ 
    if [ $# -eq 0 ]; then
        echo -e "\x1b]0;${HOSTNAME}:${PWD}\x07";
    else
        echo -e "\x1b]0;$*\x07";
    fi
}
Alex Tomlinson
источник