Next: eval-Kommando Up: Spezielle Probleme und Kommandos Previous: set-Kommando
Abfangen von Signalen
Signal: Ereignis, das zum Abbruch der Programmausführung führt, (wenn keine Behandlung vorgesehen ist).-
Signale(Auswahl) Ursache
Shell-Exit (EOF) 1 Abhängen der Terminalstation (hangup) 2 Unterbrechung (DEL-Taste) 3 QUIT: C 9 KILL: 15 Software-Abbruch (kill-Kommando) -
Problem:
Bei Ausführung eines Shell-Scripts tritt ein Signal auf, d.h. die Ausführung wird abgebrochen. Es sollen jedoch unbedingt noch bestimmte Aktionen durchgeführt werden, z.B. temporär verwendete Files gelöscht werden. -
Lösung: trap-Kommando
trap cmd_liste signal_liste
Nach Auftreten eines Signals wird cmd_liste ausgeführt und anschließend an der unterbrochenen Stelle fortgesetzt (es sei denn, cmd_liste enthält exit-Kommando) -
Beispiele:
trap 'rm -f temp*;exit' 1 2 3 15 ... oder trap "" 1 2 3 15 # Ignorieren der Signale
-
Bemerkung:
Da cmd_liste zweimal von der Shell interpretiert wird, sollte 'cmd_liste' geschrieben werden, damit nur einmal (bei der Ausführung) eine Variablenauswertung erfolgt.