Linux-Befehle

Bash-Trap-Befehl

Bash-Trap-Befehl
Ein integrierter Bash-Befehl, der verwendet wird, um einen Befehl auszuführen, wenn die Shell ein Signal empfängt, wird als "Trap" bezeichnet. Wenn ein Ereignis eintritt, sendet die Bash die Benachrichtigung durch ein beliebiges Signal. Viele Signale sind in bash verfügbar. Das häufigste Signal von Bash ist SIGINT (Signal Interrupt). Wenn der Benutzer STRG+C drückt, um einen Prozess vom Terminal aus zu unterbrechen, wird dieses Signal gesendet, um das System zu benachrichtigen.  In diesem Tutorial wird erklärt, wie Sie den Trap-Befehl verwenden können, um verschiedene Arten von Signalen zu verarbeiten.

Syntax:

trap [-lp] [[arg] signal_spec… ]

oder

Falle [Aktion] [Signal]
Schlüssel Beschreibung
-l Es wird verwendet, um die Liste aller Signalnamen mit der entsprechenden Nummer anzuzeigen.
-p Es wird verwendet, um Signalbefehle oder Trap-Befehle für signal_spec anzuzeigen.
arg Es wird verwendet, um einen Befehl auszuführen, wenn die Shell das/die Signal(e) empfängt.
signal_spec Es enthält den Signalnamen oder die Signalnummer.

Trap-Befehl ohne Option und Argumente

Führen Sie den folgenden Befehl vom Terminal aus, um die Liste aller Befehle anzuzeigen, die mit jeder Bedingung verknüpft sind. Wenn zuvor kein 'trap'-Befehl gesetzt wurde, zeigt der folgende Befehl keine Informationen an.

$falle

Trap-Befehl mit der Option -l

Führen Sie den folgenden Befehl vom Terminal aus, um die Liste aller Signalnamen mit Nummer anzuzeigen.

$falle -l

Die Ausgabe des obigen Befehls zeigt die Liste der 64 Signale mit Zahlen an.

Trap-Befehl für ERR und EXIT setzen

Der folgende erste Befehl setzt einen 'Trap'-Befehl, der ausgeführt wird, wenn ein Shell-Fehler auftritt oder die Shell beendet wird. Dieser 'Falle'-Befehl wird entfernt temp.TXT Datei vom aktuellen Speicherort. Der Befehl 'ls' wird verwendet, um die temp.TXT Datei existiert oder nicht am aktuellen Speicherort. zuletzt Ausfahrt Befehl wird verwendet, um das Terminal zu schließen und den 'trap'-Befehl auszuführen, der zuvor gesetzt wurde.

$ trap 'rm temp.txt' Fehler beenden
$ ls
$ beenden

Die folgende Ausgabe erscheint, nachdem Sie die obigen Befehle ausgeführt haben.

Wenn der Benutzer das Terminal nach dem Beenden erneut öffnet und den Befehl 'ls' ausführt, dann temp.TXT Datei wird nicht existieren.

Setzen Sie den 'Trap'-Befehl mit der Signalnummer von SIGUP, SIGQUIT und SIGKILL

Die Signalnummer von SIGUP, SIGQUIT und SIGKILL sind 1, 3 und 9. Der folgende erste Befehl setzt eine Falle für diese drei Signale. Wenn eines dieser Signale auftritt, wird die Meldung „Trap-Befehl wird ausgeführt” wird gedruckt.  Führen Sie den folgenden Befehl über das Terminal aus.

$ trap 'echo Trap-Befehl ausgeführt' 1 3 9

Wenn der Benutzer drückt Strg+C Um das Signal zu generieren, weisen Sie den Befehl 'trap' zu, dann die 'Echo' Befehl des Trap-Befehls wird ausgeführt und die folgende Ausgabe wird angezeigt.

Setze den 'trap'-Befehl für SIGTERM in einem Skript

SIGTERM Signal wird verwendet, um den Prozess sofort zu beenden, indem seine Ressourcen freigegeben werden. Erstellen Sie eine Bash-Datei mit dem Namen 'Trapskript.Sch' mit folgendem Code. Im Skript ist eine unendliche for-Schleife deklariert, die einen Text kontinuierlich ausgibt, bis SIGTERM Signal auftritt. Der Benutzer muss drücken Strg+Z generieren SIGTERM Signal.

Trapskript.Sch

#!/bin/bash
 
# Setzen Sie eine Falle für SIGINT- und SIGTERM-Signale
trap "echo Das Programm wird beendet." SIGTERM SIGINT
 
#Nachricht anzeigen, um SIGTERM . zu generieren
echo "Drücken Sie Strg+Z, um den Vorgang zu stoppen"
 
#Zählervariable initialisieren, i
i=1
 
#unendlich für Schleife deklarieren
zum(;;)
tun
#Nachricht mit Zähler drucken i
echo „Läuft die Schleife für $i-mal“
#Erhöhe den Zähler um eins
((i++))
getan

Führen Sie das Skript aus, indem Sie den folgenden Befehl ausführen und zum Generieren Strg+Z drücken SIGTERM Signal. Die folgende ähnliche Ausgabe wird angezeigt.

$ bash trapscript.Sch

Setzen Sie einen 'Trap'-Befehl, um eine Funktion basierend auf einem bestimmten Signal auszuführen

Sie können einen 'Trap'-Befehl mit jeder benutzerdefinierten Funktion verknüpfen. Erstellen Sie eine Bash namens trapfunk.Sch und füge das folgende Skript hinzu. Hier eine benutzerdefinierte Funktion namens func() ist zum Drucken einer einfachen Nachricht deklariert, "Aufgabe erledigt". Eine for-in-Schleife ist definiert, um die Liste aller Dateien und Ordner des aktuellen Arbeitsverzeichnisses zu lesen und zu drucken. 'Falle' Befehl, der am Anfang der Liste definiert ist, ruft die Funktion auf, func() wenn das Programm endet.

trapfunk.Sch

#!/bin/bash
# Funktion beim Beenden aufrufen
Trap-Funktion beenden
# Deklarieren Sie die Funktion
Funktion func()
 
echo "Aufgabe abgeschlossen"

# Lesen Sie die Dateien und Ordner der aktuellen Verzeichnisliste mit for loop
für ich in *
tun
echo "$i"
getan

Führen Sie das Skript über das Terminal aus.

Führen Sie das Skript aus.

$ bash trapfunc.Sch

Die folgende Ausgabe zeigt, dass, "Aufgabe erledigt” Text wird gedruckt, nachdem alle Dateien und Ordner des aktuellen Verzeichnisses gedruckt wurden.

Fazit

Dieses Tutorial zeigt, wie der Befehl 'trap' in Linux verwendet werden kann, um automatisierte Aufgaben basierend auf generierten Signalen auszuführen. Es hilft Benutzern, verschiedene Arten von Fehlern zu verfolgen und geeignete Maßnahmen zu ergreifen, die zuvor mit diesem Befehl zugewiesen werden können. Viele Programme oder Skripte weisen bestimmte Ressourcen zu, wenn sie im System ausgeführt werden. Wenn ein laufendes Programm oder Skript abnormal beendet oder beendet wird, werden die von diesem Programm verwendeten Ressourcen blockiert. Der Befehl 'trap' kann verwendet werden, um dieses Problem zu lösen. Die Ressourcenreinigungsaufgabe kann einfach mit diesem Befehl ausgeführt werden. Ich hoffe, der Leser bekommt nach dem Lesen dieses Tutorials eine klare Vorstellung von der Verwendung dieses Befehls.

Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...
Mit WinMouse können Sie die Mauszeigerbewegung auf einem Windows-PC anpassen und verbessern improve
Wenn Sie die Standardfunktionen Ihres Mauszeigers verbessern möchten, verwenden Sie Freeware WinMouse. Es fügt weitere Funktionen hinzu, damit Sie das...
Linker Mausklick funktioniert nicht unter Windows 10
Wenn Sie eine dedizierte Maus mit Ihrem Laptop oder Desktop-Computer verwenden, aber die linker Mausklick funktioniert nicht unter Windows 10/8/7 aus ...