【发布时间】:2020-09-08 13:40:19
【问题描述】:
我已经自定义了我的 .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 时,提示符的最后一个字符 $ 变为红色。
有什么建议吗? 提前致谢
【问题讨论】:
-
请注意,与编写软件相比,关于配置交互环境的问题通常更适合我们的姊妹站点Unix & Linux。具体来说,stackoverflow.com/help/on-topic 要求提出软件开发独有的问题;而 PS1 根本不被非交互式 shell 使用!