目前,我的bash终端/标签标题是根据我所在的目录设置的。例如:
bob@bobscomputer:~/i/had/some/great/pie/yesterday
如果我有多个选项卡并排打开,这不是很有用。例如,如果我有上述dir并排打开的4个选项卡,那么我看到的就是
bob@bobscomputer:~/i/had...
4次。
我希望将所有终端标题自动设置为路径的最后一部分。在上面的示例中,我希望标题为
yesterday
显然,更改目录时标题应该会更改。我想在不更改提示的情况下执行此操作,因此提示和终端标题应该不同。
有没有办法做到这一点?
为什么要在不修改PS1变量的情况下执行此操作?这是正确的方法。
如果运行以下命令,则将获得所需的内容:
export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
这只是默认提示:
export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "
...并替换\u@\h: \w
为\W
。
您可以使用任何回显正确的转义代码的命令来执行相同的操作:
echo -en "\e]0;${PWD##*/}\a"
...但是您可能会一直在与bash战斗,以阻止它使用PS1(最好的方法)进行操作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句