我启动了 git-bash 窗口,然后输入以下命令:
git-bash ~$ echo $BASH_VERSION
4.4.23(1)-release
git-bash ~$ type cd
cd is a shell builtin
git-bash ~$ cd tmp
git-bash ~/tmp$
# Change of directory is NOT refelected on git-bash window title
git-bash ~/tmp$ ssh user@linux
[user@linux ~]$ echo $BASH_VERSION
4.4.20(1)-release
[user@linux ~]$ type cd
cd is a shell builtin
[user@linux ~]$ cd tmp
[user@linux ~/tmp]$
# Change of directory IS refelected on git-bash window title
为什么 git-bash 不更新自己的窗口标题,而远程 bash 却更新?
答案1
Bash 和终端都不会自动更新标题 - 必须通过输出必要的控制序列来更新标题,或者作为 的一部分PS1
(在显示提示的同时)或通过PROMPT_COMMAND
.某些发行版已经具有可更新终端标题的自定义 shell 提示符,但有些则没有。
设置终端标题的控制序列通常是\e]0;NEW TEXT\e\\
。 (可能会有变化。)例如,要将终端标题设置为user@host /path
(ie \u@\h \w
),您可以使用:
PS1+='\[\e]0;\u@\h \w\e\\\]'
这是\[
告诉 Bash 一个“不可见”(0 宽度)序列开始;
\e]0;
作为“set title”终端命令的开始;
\u@\h \w
作为 user@host 和工作目录的 Bash PS1 扩展;
\e\\
作为终止符(\a
尽管非标准,但也可以接受);
并\]
结束“看不见”的区域。
这应该在您的 中~/.bashrc
靠近其他提示自定义项进行设置。