Почему назначения переменных bash влияют на последний код выхода $? и где это документировано?

Я был удивлен, узнав, что настройка переменной окружения изменяет последнюю существующую переменную кода $? :

 $ false $ echo $? 1 $ false $ FOO=BAR $ echo $? 0 $ 

В руководстве bash говорится только об $? :

($?) Расширяется до статуса выхода последнего выполненного переднего плана.

Где зарегистрирован код выхода переменной, установленной? Может ли это провалиться?

One Solution collect form web for “Почему назначения переменных bash влияют на последний код выхода $? и где это документировано?”

Присвоение может завершиться неудачно, если выражение правой руки не будет оцениваться

например

 $ x=HELLO $ x=$((1/0)) bash: 1/0: division by 0 (error token is "0") $ echo $? 1 

В этом случае значение $x остается неизменным:

 $ echo $x HELLO 
  • Из сценария оболочки выполните другой с аргументами и получите код возврата
  • Bash для обнаружения системы контроля версий путем проверки статуса возврата команды
  • Код возврата всегда равен 0 после запуска echo "\ $ macroName" | ftp -i mymachine
  • Как gzip, только если mysqldump не является ошибкой?
  • Постфикс использует отчет почтовой команды, если письмо не было отправлено на адрес?
  • «Rm -rf $ dir» когда-либо возвращается false?
  • Как получить статус выхода фонового процесса?
  • host возвращает 0 для несуществующего имени
  • Почему код выхода скрипта имеет другое значение, чем то, что возвращается?
  • Одновременно проверьте наличие пустого выхода и успешный статус выхода
  • Пройти через код состояния выхода после использования ||
  • Linux и Unix - лучшая ОС в мире.