我希望我的提示显示最后一个命令的退出状态,所以我将我的 PS1 设置为:
PS1="$? > "
但它总是打印0 >
。
例如,即使我运行false
,提示也不会打印1 >
或退出状态如何。
为什么会出现这种情况?
编辑:
我尝试使用一个函数来设置我的提示,测试退出状态是否大于0,所以它不会0 >
一直打印,只有当退出状态为非零时。
promptcmd() {
_EXIT=$?
test $_EXIT -gt 0 && printf "\e[1;31m [$_EXIT]"
printf "\e[0m ❯ "
unset _EXIT
}
PS1="$(promptcmd)"
但它也不起作用。