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

时间:2014-03-14 15:27:23

标签: linux bash shell

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

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

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

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

我认为用$ CWD替换$ PWD会起作用,但bash并没有内置。下面的解决方案只能在第一次使用。
   https://stackoverflow.com/a/22235278/345097 再次更改目录后,标题永远不会更新。   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 / share / project / master / app / src / com / project / dao

欲望标题
    5670 master dao

1 个答案:

答案 0 :(得分:2)

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

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