bash - 根据上一个命令的退出状态更改 PS1v 提示的最后一个字符的颜色
问题描述
我已经自定义了我的 .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 时,提示符的最后一个字符 $ 变为红色。
有什么建议么?提前致谢
解决方案
将此颜色代码添加到末尾
DEF='\e[0m' #Default color and effects
PS1="${username}@${host} ${dir} ${endchar}$DEF "
看看这里
推荐阅读
- sql-order-by - SQL中如何按字母、数字、字符对值进行排序?
- javascript - JSON 数据更改未正确保存
- excel - 如何在其他条件下使用 SUMPRODUCT 和 SMALL?
- arrays - 布尔“do while”循环后无法将元素保留在向量中
- c# - 在不使用模型的情况下传递简单的字符串列表以在 MVC 中查看
- reactjs - 如何使用 React Context 和 Hooks 从父组件重置子组件
- mysql - 无法创建表`mailorder`.`o_details`(errno:150“外键约束格式不正确”)
- android - 我的计算器应用程序正在关闭按钮双击
- db2 - 无法打开 lib '/usr/local/nz/lib/libnzsqlodbc3.so':找不到文件 (0) (SQLDriverConnect)")
- r - 获取/选择基本图上的轴间距/间隔