Syntax:
Trap [-lp] [[arg] signal_spec…]
oder
Trap [Aktion] [Signal]
Taste | Beschreibung |
-l | Es wird verwendet, um die Liste aller Signalnamen mit der entsprechenden Nummer anzuzeigen. |
-P | Es wird verwendet, um den Befehl Signal oder Trap für Signal_Spec anzuzeigen. |
arg | Es wird verwendet, um einen Befehl auszuführen, wenn die Shell die Signal (en) empfängt. |
Signal_Spec | Es enthält den Signalnamen oder die Signalnummer. |
Trap -Befehl ohne Option und arg
Führen Sie den folgenden Befehl vom Terminal aus, um die Liste aller mit jeder Bedingung zugeordneten Befehle anzuzeigen. Wenn ein Befehl 'Trap' vorher nicht festgelegt wird, wird der folgende Befehl keine Informationen angezeigt.
$ Trap
Trap -Befehl mit -l -Option
Führen Sie den folgenden Befehl vom Terminal aus, um die Liste aller Signalnamen mit der Nummer anzuzeigen.
$ fallen -l
Die Ausgabe des obigen Befehls zeigt die Liste von 64 Signalen mit Zahlen an.
Setzen Sie den Befehl fallen für err und beenden
Der folgende erste Befehl setzt einen Befehl "Trap", der ausgeführt wird, wenn ein Shell -Fehler auftritt oder Shell verlässt. Dieser Befehl "Falle" wird entfernt Temperatur.txt Datei aus dem aktuellen Standort. Der Befehl 'ls' wird verwendet, um die zu überprüfen Temperatur.txt Die Datei existiert oder nicht am aktuellen Ort. zuletzt Ausfahrt Der Befehl wird verwendet, um den Terminal zu schließen und den zuvor festgelegten Befehl "Trap" auszuführen.
$ Trap 'RM -Temperatur.txt 'Err beenden
$ ls
$ Exit
Nach dem Ausführen der obigen Befehle wird die folgende Ausgabe angezeigt.
Wenn der Benutzer nun das Terminal nach dem Beenden erneut öffnet und den Befehl 'ls' ausführt Temperatur.txt Datei wird nicht existieren.
Setzen Sie den Befehl 'Trap' mit Signalnummer von Sigup, Sigquit und Sigkill
Die Signalzahl 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 Signal auftritt, dann die Nachricht “Trap -Befehl wird ausgeführt”Wird drucken. Führen Sie den folgenden Befehl vom Terminal aus.
$ Trap 'Echo Trap -Befehl ausgeführt' 1 3 9
Wenn der Benutzer drückt Strg+c So erzeugen Sie den Befehl des Signals, zugewiesen durch 'Trap', dann der Befehl 'Echo' Der Befehl des Befehls von Trap wird ausgeführt und die folgende Ausgabe wird angezeigt.
Setzen Sie den Befehl 'Trap' für Sigterm in einem Skript
Sigterm Signal wird verwendet, um den Prozess sofort zu beenden, indem seine Ressourcen freigelassen werden. Erstellen Sie eine Bash -Datei namens 'Trapscript.Sch'Mit dem folgenden Code. Ein unendlicher für die Schleife wird in dem Skript deklariert, das einen Text kontinuierlich druckt, bis Sigterm Signal tritt auf. Der Benutzer muss drücken Strg+z generieren Sigterm Signal.
Trapscript.Sch
#!/Bin/Bash
# Legen Sie eine Falle für SIGINT- und SIGMTERM -Signale ein
Trap "Echo Das Programm wird gekündigt."Sigterm Sigint
#Display -Nachricht, um Sigterm zu generieren
Echo "Drücken Sie Strg+z Stoppen Sie den Prozess"
#Initialisieren Sie die Gegenvariable, ich
I = 1
#Declare Infinite für Schleife
für(;;)
Tun
#Drucknachricht mit The Counter i
Echo „Die Schleife für $ I Times ausführen“
#Inkrementiert die Theke um eins
((i ++))
Erledigt
Führen Sie das Skript aus, indem Sie den folgenden Befehl ausführen, und drücken Sie Strg+Z, um zu generieren Sigterm Signal. Die folgende ähnliche Ausgabe wird angezeigt.
$ bash tapapscript.Sch
Stellen Sie einen Befehl "Trap" fest, um eine Funktion basierend auf einem bestimmten Signal auszuführen
Sie können einen Befehl "Trap" mit jeder benutzerdefinierten Funktion in Verbindung bringen. Erstellen Sie eine Bash mit dem Namen Traapfunc.Sch und fügen Sie das folgende Skript hinzu. Hier eine benutzerdefinierte Funktion benannt func () wird erklärt, eine einfache Nachricht zu drucken, "Aufgabe erledigt". Es wird eine For-In-Schleife definiert, um die Liste aller Dateien und Ordner des aktuellen Arbeitsverzeichnisses zu lesen und zu drucken. 'fangen' Der Befehl, der am Anfang der Liste definiert ist, func () Wenn das Programm endet.
Traapfunc.Sch
#!/Bin/Bash
# Aufrufen der Func -Funktion beim Beenden
FACE FUNC -Ausgang
# Die Funktion deklarieren
Funktion func ()
echo "Aufgabe abgeschlossen"
# Lesen Sie die Dateien und Ordner der aktuellen Verzeichnisliste mit für die Schleife durch
denn ich in *
Tun
echo "$ ich"
Erledigt
Führen Sie das Skript aus dem Terminal aus.
Führen Sie das Skript aus.
$ Bash Traapfunc.Sch
Die folgende Ausgabe zeigt das, "Aufgabe erledigtDer Text wird nach dem Drucken aller Dateien und Ordner des aktuellen Verzeichnisses gedruckt.
Dieses Tutorial zeigt, wie 'Trap' Befehl unter Linux verwendet werden kann, um eine automatisierte Aufgabe basierend auf generiertem Signal auszuführen. Es hilft Benutzern, verschiedene Arten von Fehlern nachzuverfolgen und ordnungsgemäße Maßnahmen zu ergreifen, die zuvor mit diesem Befehl zugewiesen werden können. Viele Programme oder Skripte vergeben bestimmte Ressourcen beim Ausführen im System. Wenn ein ausgeführter Programm oder Skript abnormal beendet oder abnormal 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 erfolgen. Hoffnung, der Leser bekommt nach dem Lesen dieses Tutorials eine klare Vorstellung von den Verwendungen dieses Befehls.