我目前在 bash 中有一个提示,它调用一个函数来输出最后一个命令运行的返回码(如果非零):
exit_code_prompt()
{
local exit_code=$?
if [ $exit_code -ne 0 ]
then
tput setaf 1
printf "%s" $exit_code
tput sgr0
fi
}
PS1='$(exit_code_prompt)\$ '
这工作得很好,除了$?
除非运行另一个命令否则不会重置:
$ echo "works"
works
$ command_not_found
bash: command_not_found: command not found
127$
127$
127$
127$ echo "works"
works
$
$?
是否可以在第一次运行时重置/取消设置父 shell 的值,以便exit_code_prompt()
它不会继续重复提示中的值?
非常感谢,史蒂夫。