Если вы поместите set -e
в сценарий, сценарий прекратит работу, как только какая-либо команда внутри него завершится неудачей (т.е. как только любая команда вернет ненулевой статус). Это не позволяет вам написать свое собственное сообщение, но часто собственных сообщений команды-неудачника достаточно.
Преимущество этого подхода в том, что он автоматический: вы не рискуете забыть разобраться с ошибкой.
Команды, состояние которых проверяется условным выражением (например, if
, &&
или ||
), не завершают сценарий (в противном случае условное выражение будет бессмысленным). Идиома для случайной команды, неудача которой не имеет значения, command-that-may-fail || true
. Вы также можете отключить set -e
для части скрипта с помощью set +e
.