从 ssh 返回时,如何让 OS X 将终端标题设置回原始标题?

Cha*_*ens 12 ssh bash shell terminal.app macos

从 OS X 开始,我通过 ssh 进入 foo(一个 Linux 机器)。我的终端标题更改为 foo。然后我 ssh 进入 bar(另一个 Linux 机器)。我的终端标题更改为 bar。我退出了酒吧。我的终端标题更改为 foo。我退出 foo。我的终端标题保持 foo (而不是改回原来的标题)。问题显然不在于终端,因为在从 Linux 机器注销回到 Linux 机器时它可以正常工作。它可能不是 ssh,因为我对 vim 有同样的问题。在我看来,离开了贝壳。我正在使用 BASH。纵观整个环境,我没有看到 Linux 机器和我的 OS X 机器之间有太大区别。两者都使用 xterm 的术语。

Cha*_*ens 14

添加

export PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
Run Code Online (Sandbox Code Playgroud)

.bash_profile解决了这个问题。

看起来好像PROMPT_COMMAND每次显示提示时都会执行in 的字符串。从手册页:

PROMPT_COMMAND

如果设置,该值在发出每个主要提示之前作为命令执行。

  • 您不太可能通过控制台登录 OS X,但它可能会发生。为了防止在这种情况下出现问题,我将整个事情包装在 xterm*|rxvt*)` 类型的`case "$TERM" 中。我想我最初是从这里得到这个想法的:http://tldp.org/HOWTO/Bash-Prompt-HOWTO/xterm-title-bar-manipulations.html (3认同)