Ich möchte ein Skript ausführen, das eine Website mit einem Apache-Server erstellt und hostet. Wenn etwas schief gelaufen ist, muss ich alle vorgenommenen Änderungen rückgängig machen, z. B. den erstellten Ordner löschen usw.
Ich weiß, dass set -e
das Skript beim Erkennen eines Fehlers beendet wird.
Ich muss jedoch ein Skript ausführen, z. B. rollback.sh, und stattdessen einen Fehler feststellen, der beendet wird
command-line
server
bash
scripts
Rajesh Rajendran
quelle
quelle
createSite.sh || rollback.sh
ausreichen?Antworten:
Innerhalb des Skripts können Sie Folgendes verwenden
trap
:Da
ERR
gefangen ist, wenn alle Befehlsausgänge mit einem Nicht-Null - Exit - Code,err_handler
wird Funktion ausgeführt werden.Sie können sich das
set -e
so vorstellen:quelle