GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash ignoriert Fehler für einen bestimmten Befehl

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

Linux
  1. Wie deaktiviere ich einen Alias ​​in Bash für einen einzelnen Befehl?

  2. Bash-Exportbefehl

  3. Find-Befehl in Bash-Skript, was zu No such file or directory error only for directorys führt?

  4. Führen Sie den Bash-Befehl auf der Jenkins-Pipeline aus

  5. Blockieren Sie bestimmte Befehle in Linux für bestimmte Benutzer

Bash-printf-Befehl

Linux echo Command Tutorial für Anfänger (5 Beispiele)

Bash Echo-Befehl mit Beispielen in Linux erklärt

So verwenden Sie den Echo-Befehl in Bash-Skripten unter Linux

Fehlerbehebung „Bash:Command Not Found“-Fehler in Linux

Verwenden des Bash-printf-Befehls zum Drucken formatierter Ausgaben