【发布时间】:2020-03-03 05:35:46
【问题描述】:
我已经为此苦苦挣扎了很长时间。 尝试根据最后一个命令的退出代码更改颜色作为提示的一部分。
我已将我的提示简化为一个最小示例:
Red="\[\033[31m\]"
Green="\[\033[32m\]"
Reset="\[\033[0m\]"
statColour(){
if [[ "$1" == "0" ]]; then
echo -e "${Green} $1 "
else
echo -e "${Red} $1 "
fi
}
export PS1="$(statColour \$?)What Colour? $Reset"
尽管数字在第一个实例中显然是 0,但始终使用红色。
我尝试了[ 和$1 -eq 0,但没有成功。为什么这不起作用?
【问题讨论】:
-
您必须单引号
PS1,否则它只会被评估一次,而不是每次绘制提示时。
标签: bash function if-statement prompt