Der trap
Befehl in Bash wird verwendet, um bestimmte Aktionen auszuführen, wenn ein Skript ein Signal empfängt oder einen Fehler auftritt. Dies ist besonders nützlich, um Ressourcen freizugeben oder um sicherzustellen, dass bestimmte Bereinigungsaktionen durchgeführt werden, bevor das Skript beendet wird.
Die grundlegende Syntax des trap
Befehls lautet:
trap [Aktion] [Signal]
EXIT
: Führt die angegebene Aktion aus, wenn das Skript beendet wird.SIGINT
: Reagiert auf das Interrupt-Signal (z. B. Ctrl+C).SIGTERM
: Reagiert auf das Terminationssignal.ERR
: Führt die angegebene Aktion aus, wenn ein Fehler auftritt.trap 'echo "Skript wird beendet"; rm -f temp.txt' EXIT
In diesem Beispiel wird eine Nachricht ausgegeben und die Datei temp.txt
gelöscht, wenn das Skript beendet wird.
trap 'echo "Interrupt empfangen, Skript wird abgebrochen"; exit' SIGINT
Hier wird eine Nachricht angezeigt und das Skript beendet, wenn ein Interrupt-Signal empfangen wird.
trap 'echo "Ein Fehler ist aufgetreten"; exit 1' ERR
In diesem Fall wird eine Fehlermeldung ausgegeben und das Skript mit einem Fehlerstatus beendet, wenn ein Fehler auftritt.
trap
in Kombination mit EXIT
, um sicherzustellen, dass Aufräumarbeiten immer durchgeführt werden, unabhängig davon, wie das Skript beendet wird.trap
-Befehle gründlich, um sicherzustellen, dass sie wie gewünscht funktionieren, insbesondere bei der Fehlerbehandlung.trap
in langen Skripten, da es zu unerwartetem Verhalten führen kann, wenn Signale nicht richtig behandelt werden.