Press "Enter" to skip to content

Unterbrechung von Shell-Skripten abfangen

Manuel 0

Wenn man Shell-Skripte schreibt, möchte man in der Regel nach Beendigung eines Skriptes was irgendetwas tut auch wieder ein sauberes Umfeld hinterlassen. Sprich, wenn man mit temporären Dateien arbeitet, löscht man diese auch wieder nachdem die Arbeit getan ist. In der Regel funktioniert das auch ganz gut, wenn ein Skript von Anfang bis Ende durchläuft.

Weniger gut funktioniert das aber, wenn das Skript z.B. durch den Benutzer unterbrochen wird, als z.B. durch Drücken von STRG(CTRL) + C. Hier wird das Skript direkt unterbrochen. Hierfür gibt es aber die Möglichkeit, entsprechende „Signals“ (Siehe hierzu auch https://wiki.ubuntuusers.de/Signale/) abzufangen und z.B. eine Aufräumaktion zu starten.

Unterbrechung abfangen

Diese Möglichkeit nennt sich „trap“ und in Verwendung sieht das z.B. so aus:


#!/bin/bash

trap "echo Ich wurde vorzeitig beendet!; echo Tschüss!; exit" INT TERM

sleep 3600

Ruft man dieses Skript auf und beendet es dann vorzeitig, sieht das wie folgt aus:


root@dev-srv01:/tmp# bash ./test.sh
^CIch wurde vorzeitig beendet!
Tschüss!
root@dev-srv01:/tmp#

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.