将 mac OS X 上的 bash 终端的标题设置为当前工作目录

将 mac OS X 上的 bash 终端的标题设置为当前工作目录

我知道他们一直在问这个问题,而且我的答案也非常完美,但有一件事我不明白,那就是为什么这是不同的。

 #This will show the full path (/usr/bin)
 PROMPT_COMMAND='echo -ne "\033]0;${PWD}\007"'


 #This will set to the directory name only (bin)
 PROMPT_COMMAND='echo -ne "\033]0;${PWD##*/}\007"'

我在这里遇到的问题是我想使用第二个,但是当我打开一个新的水龙头时,它将返回到默认工作目录,而如果我打开另一个我想要的水龙头,第一个将保留相同的工作目录。

答案1

奇怪。也许这与模式扩展在 bash 的处理顺序中发生的时间有关。

类似“PROMPT_COMMAND='BASED=${PWD##*/} echo -ne "\033]0;$BASED\007"”之类的命令可能会起到作用。

编辑:这没用吗?也许这个可以

set_prompt () {
    BASE_PATH="${PWD##*/}"
    echo -ne "\033]0;$BASE_PATH\007"
}

PROMPT_COMMAND=set_prompt

相关内容