Po wejściu set -ew 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 -ew 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 -ekaż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.