在 bash 终端窗口中显示当前目录名称

Bri*_*ian 2 linux bash shell

我在一个窗口中打开了多个终端,标题显示当前目录的完整路径。我遇到的问题是:路径太长,很难区分它们。

我想显示的是标题中的当前目录名称(而不是完整路径)。

这是我在 .bashrc 中当前的标题

   PROMPT_COMMAND='echo -ne "\033]0;$$ ${BRANCH} ${PWD/#$HOME} \007"'

我认为只需用 $CWD 替换 $PWD 就可以了,但是 bash 没有内置它。下面的解决方案仅在第一次时有效。
/sf/answers/1556469491/ 再次更改目录后,标题永远不会更新。 export DIR=`echo $PWD | rev | cut -f1 -d'/' | rev` export DIR2=`basename ${PWD}` PROMPT_COMMAND='echo -ne "\033]0;$$ ${BRANCH} ${DIR} \007"'

这是我的PS1作为参考: PS1="[\033[00;31m]\h [\033[00;32m] \w [\033[00;36m] > [\033[00m]"


例子:

cd /share/project/master/app/src/com/project/dao

目前标题显示

5670主/共享/项目/master/app/src/com/project/dao

欲望称号
5670大师道

che*_*ner 5

由于$PWD保证是一个目录,因此您可以使用以下任一方法:

PROMPT_COMMAND='echo -ne "\033]0;$$ ${BRANCH} $(basename "$PWD") \007"'
PROMPT_COMMAND='echo -ne "\033]0;$$ ${BRANCH} ${PWD##*/} \007"'
Run Code Online (Sandbox Code Playgroud)