Bash 'set -x' Befehl

Bash 'set -x' Befehl

Verprügeln Satz Der Befehl wird für viele Zwecke in Bash verwendet und verfügt über viele Möglichkeiten, verschiedene Arten von Merkmalen der Shell -Umgebung zu aktivieren oder zu deaktivieren. Der -X Die Option ist eine der Optionen des SET -Befehls. Der 'set -xDer Befehl kann vom Terminal oder in jedem Bash -Skript verwendet werden. Verschiedene Zwecke für die Verwendung der 'set -xIn diesem Tutorial wurde der Befehl beschrieben.

Debugging aktivieren

Wenn das Skript nicht die korrekte Ausgabe oder unerwartete Ausgabe anzeigt, kann dieses Problem mithilfe von Debugging gelöst werden. Die Debugging -Funktion kann auf unterschiedliche Weise im Bash -Skript aktiviert werden, das unten erwähnt wird.

Die Debugging -Funktion kann aktiviert werden, indem der Befehl 'set -x' im Terminal oder innerhalb des Bash -Skripts mit dem Befehl 'set -x' verwendet wird. Die Verwendung des Befehls 'set -x' wurde im nächsten Teil des Tutorials gezeigt.
Die Debugging -Funktion kann auch mit der Option -x zum Zeitpunkt der Ausführung der Bash -Datei wie dem folgenden Befehl aktiviert werden:

$ bash -x Dateiname.verprügeln

Die Debugging -Funktion kann auch durch die Verwendung der folgenden Zeile am Anfang des Skripts aktiviert werden:

#!/bin/sh -x

Deaktivieren Sie das Debuggen

Nach der Lösung des Problems müssen die Debugging -Funktion des Bash -Skripts deaktiviert werden. Der Befehl 'set +x' wird verwendet, um die Debugging -Funktion zu deaktivieren.

Verschiedene Beispiele für den Befehl 'set -x'

Zwei verschiedene Verwendungen der Option "set -x" wurden mit Beispielen gezeigt.

Beispiel 1: Aktivieren und deaktivieren Sie die Debugging-Funktion

Erstellen Sie eine Bash -Datei mit dem folgenden Skript, das die Eingabe vom Benutzer vor und nach der Verwendung der Befehle "set -x" und "set +x" verwendet. Der Vorname -Wert wird vor der Verwendung des Befehls 'set -x' genommen und gedruckt. Der Nachnamenwert wird nach Verwendung des Befehls 'set -x' genommen und gedruckt. Als nächstes werden die Werte des Vornamens und des Nachnamens nach Verwendung des Befehls 'set +x' gedruckt.

#!/Bin/Bash
#Eingabe und Druck
Lesen Sie -p "Geben Sie Ihren Vornamen ein:" FirstName
Echo "Dein Vorname ist $ FirstName"
#Enable den Befehl set -x
set -x
#Einen weiteren Eingang und drucken
Lesen Sie -p "Geben Sie Ihren Nachnamen ein:" Nachname
Echo "Dein Nachname ist $ lastname"
#Disable Der Befehl Set X
Set +x
#Print der Variablen
Echo "Ihr Vollname ist $ FirstName $ Lastname"

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts gedruckt. Gemäß der Ausgabe wurde jede Anweisung des Skripts nach der Ausführung des Befehls 'set -x' gedruckt.

Beispiel -2: Debugging Skript mit 'set -x' Befehl

Erstellen Sie eine Bash -Datei mit dem folgenden Skript, das vom Benutzer einen Dateinamen zum Lesen nimmt, indem Sie die Debugging -Funktion aktivieren. Der Befehl 'set -x' wurde zu Beginn des Skripts verwendet, um die Debugging -Funktion zu aktivieren. Als nächstes wird der Benutzer ein Dateiname entnommen. Wenn vom Benutzer kein Dateiname angegeben wird, wird eine Nachricht gedruckt. Wenn der vom Benutzer aufgenommene Dateiname nicht existiert oder keine Datei ist, wird eine andere Fehlermeldung angezeigt. Wenn der gültige Dateiname vom Benutzer entnommen wird, wird der Inhalt der Datei gedruckt.

#!/Bin/Bash
#Enable das Debuggen
set -x
#Wenden Sie den Dateinamen vom Benutzer
Echo -n "Einen Dateinamen eingeben:"
Lesen Sie fn
#Scheck, ob der Dateiname leer ist oder nicht
wenn ["$ fn" == ""];
Dann
Echo "Dateiname fehlt."
#Scheck, ob die Datei existiert oder nicht
elif [ ! -f "$ fn"];
Dann
#Druckfehlermeldung
echo "$ fn existiert nicht."
anders
#Printieren Sie den Dateiinhalt
Katze "$ fn"
fi

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des oben genannten Skripts angezeigt, ohne einen Dateinamen anzugeben. Die Ausgabe zeigt, dass der leere Wert als Dateiname genommen wurde. Die Bedingung "If" für die Überprüfung eines leeren Dateinamens wurde für die leere Eingabe zurückgegeben. Die Anweisung "Echo" zur Druckfehlermeldung wurde also für die Debugging -Option und die Fehlermeldung gedrucktDateiname fehltWurde gedruckt.

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts mit einem Dateinamen angezeigt. Die Ausgabe zeigt, dass die Bedingung für die Überprüfung des leeren Dateinamens falsch zurückgegeben wurde und die Bedingung für die Überprüfung der nicht existierenden Datei auch falsch zurückgegeben wurde. Der Eingabedateiname, Testdatei.txt existiert am aktuellen Ort. Also die 'Katze'Befehl zum Lesen der Testdatei.txt Die Datei wurde ausgeführt und der Inhalt der Datei wurde gedruckt.

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts mit einem Dateinamen angezeigt. Die Ausgabe zeigt, dass die Bedingung "If" zur Überprüfung eines leeren Dateinamens falsch zurückgegeben wurde und die Bedingung "If" für die Überprüfung einer nicht existierenden Datei true zurückgegeben wurde, weil die Datei1.txt existiert nicht am aktuellen Ort. Also die 'Katze'Befehl zum Lesen der Datei wurde nicht ausgeführt und die Fehlermeldung “Datei1.txt existiert nicht.Wurde gedruckt.

Abschluss

Die Debugging -Aufgabe ist ein sehr wichtiger Bestandteil jeder Programmiersprache, um den Fehler des Code einfach herauszufinden. Die Debugging -Aufgabe erfolgt auf unterschiedliche Weise für verschiedene Programmiersprachen. In diesem Tutorial wurde mehrere Möglichkeiten zum Ermöglichen der Debugging -Funktion für das Bash -Skript und die Verwendung des Befehls 'set -x' zum Debuggen des Bash -Skripts beschrieben.