Как отменить эффект "set-e", который заставляет bash немедленно выйти, если какая-либо команда терпит неудачу?
после ввода set -e
в интерактивной оболочке bash bash немедленно выйдет, если какая-либо команда выйдет с ненулевым значением. Как я могу отменить этот эффект?
3 ответа:
С
set +e
. Да, это отсталый, что вы включить параметры оболочки сset -
и отключить Сset +
. Исторический изюм, дончанов.
это может быть неуместно использовать
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 || :
надеюсь, что это помогает!