PS1 中高亮显示路径分隔符

PS1 中高亮显示路径分隔符

我想在 Bash 中做这样的事情:

如何格式化 zsh 提示符中的路径?

但我尝试的所有结果都会被PWD固定到我启动终端的第一个目录。奇怪的是,我还有一个函数PS1可以将当前的 git 分支放入提示符中,并且总是更新,所以我很困惑为什么被PWD卡住了。我当前的提示在这儿顺便。

我尝试替换\w$(pwd|grep --color=always /),但只是卡住了。我也尝试使用 bash 字符串替换来完成此操作,但这也不起作用。${PWD////$bldred/$bldblu}($bldred和$bldblu在我的prompt.sh中定义)。

答案1

在提示中包含动态变量时,您需要引用它。

我不太明白你的一些 PROMPT_COMMAND 内容,但请PS1='${PWD////'"$bldred/$bldblue"'} \$'自行尝试一下,看看它是否有效。

答案2

脚本的最后一部分:

case "$TERM" in
xterm*|rxvt*)
    PS1=...
...

当你设置时就没用了$PROMPT_COMMAND- 该版本$PS1只会运行一次。因此,在第一次运行该脚本后,您将不会看到标题更新。您需要将标题更改$PROMPT_COMMAND与其他所有内容一起添加。

将其移至switch真正的分支内

if [ "$color_prompt" = yes ]; then

并在此基础上构建不同的版本$PROMPT_COMMANDS。对我有用。

相关内容