В настоящее время у меня есть приглашение в 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
$
Можно ли сбросить/отменить значение $?
для родительской оболочки при первом запуске exit_code_prompt()
, чтобы оно не повторяло значение в приглашении?
Большое спасибо, Стив.