LINUX.ORG.RU

История изменений

Исправление redgremlin, (текущая версия) :

хотя, по идее, операторы не должны изменять last_error_code

Они и не меняют. man bash

if список; then список; [ elif список; then список; ] ... [ else список; ] fi
Выполняется список после if. Если его статус выхода - 0, выполняется список после then.


После if идет просто набор команд и, в качестве условия, берется статус ($?) последней команды. Естественно, что then echo $? выведет 0, иначе бы if не вошло бы в этот блок then.

Исходная версия redgremlin, :

хотя, по идее, операторы не должны изменять last_error_code

Они и не меняют. man bash

if список; then список; [ elif список; then список; ] ... [ else список; ] fi

Выполняется список после if. Если его статус выхода - 0, выполняется список после then.

После if идет просто набор команд и, в качестве условия, берется статус ($?) последней команды. Естественно, что then echo $? выведет 0, иначе бы if не вошло бы в этот блок then.