我在一个窗口中打开了几个终端,标题显示了当前目录的完整路径。我遇到的问题是:路径太长,很难区分它们。
我想要显示的是标题中的当前目录名称(不是完整路径)。
这是我在.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
答案 0 :(得分:2)
由于$PWD
保证是目录,因此您可以使用以下任一方法:
PROMPT_COMMAND='echo -ne "\033]0;$$ ${BRANCH} $(basename "$PWD") \007"'
PROMPT_COMMAND='echo -ne "\033]0;$$ ${BRANCH} ${PWD##*/} \007"'