После ввода set -e
в интерактивной оболочке bash bash немедленно выйдет, если какая-либо команда выйдет с ненулевым значением. Как я могу отменить этот эффект?
Как отменить эффект "set -e", который делает вывод bash немедленно, если какая-либо команда не работает
Ответ 1
С set +e
. Да, наоборот, вы включаете опции оболочки с помощью set -
и отключите их с помощью set +
. Исторические изюмы, дончанов.
Ответ 2
Невозможно использовать set +e
/set -e
каждый раз, когда вы хотите переопределить его. Я нашел более простое решение.
Вместо этого сделайте следующее:
set +e
command_that_might_fail_but_we_want_to_ignore_it
set -e
вы можете сделать это следующим образом:
command_that_might_fail_but_we_want_to_ignore_it || true
или, если вы хотите сохранить нажатия клавиш и не против быть загадочным:
command_that_might_fail_but_we_want_to_ignore_it || :
Надеюсь, это поможет!
Ответ 3
- Использование + вместо - приводит к отключению этих флагов.