Die Lösung:
particular_script || true
Beispiel:
$ cat /tmp/1.sh
particular_script()
{
false
}
set -e
echo one
particular_script || true
echo two
particular_script
echo three
$ bash /tmp/1.sh
one
two
three
wird nie gedruckt.
Außerdem möchte ich das hinzufügen, wenn pipefail
eingeschaltet ist, genügt es der Shell zu denken, dass die gesamte Pipe einen Nicht-Null-Exit-Code hat, wenn einer der Befehle in der Pipe einen Nicht-Null-Exit-Code hat (mit pipefail
abschalten muss das letzte).
$ set -o pipefail
$ false | true ; echo $?
1
$ set +o pipefail
$ false | true ; echo $?
0
Fügen Sie einfach || true
hinzu nach dem Befehl, bei dem Sie den Fehler ignorieren möchten.
Halten Sie nicht an und speichern Sie auch den Ausgangsstatus
Nur für den Fall, wenn Sie möchten, dass Ihr Skript nicht anhält, wenn ein bestimmter Befehl fehlschlägt, und Sie auch den Fehlercode des fehlgeschlagenen Befehls speichern möchten:
set -e
EXIT_CODE=0
command || EXIT_CODE=$?
echo $EXIT_CODE