Po wejściu set -e
w interaktywną powłokę bash, bash natychmiast zakończy działanie, jeśli jakiekolwiek polecenie zakończy się z niezerową wartością. Jak mogę cofnąć ten efekt?
Po wejściu set -e
w interaktywną powłokę bash, bash natychmiast zakończy działanie, jeśli jakiekolwiek polecenie zakończy się z niezerową wartością. Jak mogę cofnąć ten efekt?
Odpowiedzi:
Z set +e
. Tak, to w tył, które umożliwiają powłoki z opcji set -
i wyłączyć je set +
. Rodzynki historyczne, donchanów.
+
jest jak, -
ale przejście przez coś oznacza „nie” jak w „≠”.
Używanie set +e
/ za set -e
każdym razem, gdy chcesz go zastąpić, może być niewygodne . Znalazłem prostsze rozwiązanie.
Zamiast robić to w ten sposób:
set +e
command_that_might_fail_but_we_want_to_ignore_it
set -e
możesz to zrobić w następujący sposób:
command_that_might_fail_but_we_want_to_ignore_it || true
lub, jeśli chcesz zapisać naciśnięcia klawiszy i nie masz nic przeciwko byciu trochę tajemniczym:
command_that_might_fail_but_we_want_to_ignore_it || :
Mam nadzieję że to pomoże!
:
i znalazłem tutaj moją odpowiedź , na wypadek gdyby ktoś inny był ciekawy.