Der Befehl "fallen" in UNIX wird verwendet, um Signale
zu verarbeiten , die asynchrone Ereignisse sind, die einen Laufprozess unterbrechen können. Signale werden verwendet, um einen Prozess verschiedener Ereignisse zu informieren, wie z. B.:
* Beendigungsignale: Diese Signale werden an einen Prozess gesendet, um es zu beenden, z.
* Fehlersignale: Diese Signale werden an einen Prozess gesendet, um einen Fehler anzuzeigen, beispielsweise "sigsegv` (Segmentierungsverletzung).
* Andere Signale: Es gibt verschiedene andere Signale wie "Sigusr1" und "sigusr2", die für benutzerdefinierte Zwecke verwendet werden können.
wie `fAp` funktioniert
Mit dem Befehl "tape" können Sie angeben, welche Aktionen ergriffen werden sollen, wenn ein bestimmtes Signal durch einen Prozess empfangen wird. Es hat die folgende Syntax:
`` `bash
Trap 'Befehlssignal
`` `
* `command` :Dies ist der Befehl oder die Folge von Befehlen, die ausgeführt werden, wenn das angegebene Signal empfangen wird.
* `signal` :Dies ist die Signalnummer oder der Name, den Sie fangen möchten.
Beispiele
1. Handling `Sigint` (Interrupt):
`` `bash
Trap 'echo "unterbrochen! Auszug ..."; beenden 'int
`` `
Dadurch wird die Meldung "Interrupted! Beenden ..." gedruckt und dann das Skript beenden, wenn `Strg+c` gedrückt wird (was das SIGint` -Signal sendet).
2. ignorieren `sigquit` (beenden):
`` `bash
Trap '' beenden
`` `
Dies ignoriert das Signal "Sigquit" (typischerweise von `Strg+\`) und verhindert, dass es das Skript beendet.
3. Ein Reinigungsskript ausführen:
`` `bash
Trap 'CleanUp.sh' Ausgang
`` `
Dadurch wird das Skript "CleanUp.sh`" ausgeführt, wenn der Prozess ausgeht, unabhängig vom Grund für die Beendigung.
Wichtige Hinweise:
* Der Befehl "fallen" wirkt sich nur auf den aktuellen Shell -Prozess aus.
* Wenn Sie Signale in einem Kinderprozess verarbeiten möchten, müssen Sie "Trap" in diesem Kinderprozess verwenden.
* Sie können die Option "-l`" mit "Trap" verwenden, um alle verfügbaren Signale aufzulisten.
Zusammenfassend bietet "Trap" einen leistungsstarken Mechanismus für den Umgang mit Signalen und die Kontrolle des Verhaltens Ihrer UNIX -Skripte als Antwort auf verschiedene Ereignisse.