Utilice setzen -e
#!/bin/bash
set -e
/bin/command-that-fails
/bin/command-that-fails2
Das Skript wird nach der ersten fehlgeschlagenen Zeile beendet (gibt einen Exit-Code ungleich Null zurück). In diesem Fall, befehl-der-misslingt2 wird nicht ausgeführt.
Wenn Sie den Rückgabestatus jedes einzelnen Befehls überprüfen würden, würde Ihr Skript wie folgt aussehen:
#!/bin/bash
# I'm assuming you're using make
cd /project-dir
make
if [[ $? -ne 0 ]] ; then
exit 1
fi
cd /project-dir2
make
if [[ $? -ne 0 ]] ; then
exit 1
fi
Mit setzen -e würde es so aussehen:
#!/bin/bash
set -e
cd /project-dir
make
cd /project-dir2
make
Jeder Befehl, der fehlschlägt, führt dazu, dass das gesamte Skript fehlschlägt und einen Exit-Status zurückgibt, den Sie überprüfen können mit $? . Wenn Ihr Skript sehr lang ist oder Sie eine Menge Zeug bauen, wird es ziemlich hässlich, wenn Sie überall Rückgabestatusprüfungen hinzufügen.