Как отменить эффект "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 || :надеюсь, что это помогает!