根据上一个命令的退出状态更改PS1v promt的最后一个字符的颜色

问题描述

我已经自定义.bashrc设置,类似于Clear Linux中的默认PS1设置。 我的文件包含以下几行:

EXIT="$?"
BLUE="\[\e[38;5;39m\]"
RED="\[\e[31m\]"
ORANGE="\[\e[38;5;208m\]"
WHITE="\[\e[0m\]"
    if [ "$EXIT" = "0" ]; then
          endchar="${BLUE}\\$""$WHITE"
    else
          endchar="${RED}\\$""$WHITE"
    fi
    
    if [ "$UID" = "0" ]; then
          username="${RED}\u${WHITE}"
    else
          username="${BLUE}\u${WHITE}"
    fi  

host="${ORANGE}\H${WHITE}"
dir="${BLUE}\w${WHITE}"
PS1="${username}@${host} ${dir} ${endchar} "

该文件的来源在登录或打开新的终端窗口时没有错误,但有一个例外: 尽管我在终端上输入了错误,但最终PS1字符串中的最后一个字符仍然永远是蓝色。

我的设置的预期行为是,当上一个命令的退出状态大于0时,提示的最后一个字符$变为红色。

有什么建议吗? 预先感谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)