Website-Suche

So aktivieren Sie den Shell-Skript-Debugging-Modus unter Linux


Ein Skript ist einfach eine Liste von Befehlen, die in einer Datei gespeichert sind. Anstatt eine Folge von Befehlen auszuführen, indem er sie ständig einzeln auf dem Terminal eingibt, kann ein Systembenutzer alle Befehle (Befehle) in einer Datei speichern und die Datei wiederholt aufrufen, um die Befehle mehrmals erneut auszuführen.

Beim Erlernen von Skripten oder in den frühen Phasen des Schreibens von Skripten beginnen wir normalerweise damit, kleine oder kurze Skripte mit ein paar Befehlszeilen zu schreiben. Und normalerweise debuggen wir solche Skripte, indem wir uns lediglich ihre Ausgabe ansehen und sicherstellen, dass sie wie beabsichtigt funktionieren.

Wenn wir jedoch beginnen, sehr lange und komplexe Skripte mit Tausenden von Befehlszeilen zu schreiben, beispielsweise Skripte, die Systemeinstellungen ändern, wichtige Backups über Netzwerke durchführen und vieles mehr, werden wir feststellen, dass es nicht möglich ist, nur die Ausgabe eines Skripts zu betrachten genug, um Fehler in einem Skript zu finden.

Daher werden wir in dieser Serie zum Shell-Skript-Debuggen unter Linux erklären, wie Sie das Shell-Skript-Debugging aktivieren und in der folgenden Serie die verschiedenen Shell-Skript-Debugging-Modi und deren Verwendung erläutern.

So starten Sie ein Skript

Ein Skript unterscheidet sich von anderen Dateien durch seine erste Zeile, die ein #! (She-bang – definiert den Dateityp) und einen Pfadnamen (Pfad zum Interpreter) enthält. Dadurch wird das System darüber informiert, dass es sich bei der Datei um eine Sammlung von Befehlen handelt, die vom angegebenen Programm (Interpreter) interpretiert werden.

Nachfolgend finden Sie Beispiele für die „ersten Zeilen“ in verschiedenen Arten von Skripten:

#!/bin/sh          [For sh scripting]
#!/bin/bash        [For bash scripting] 
#!/usr/bin/perl    [For perl programming]
#!/bin/awk -f      [For awk scripting]   

Hinweis: Die erste Zeile oder #! kann weggelassen werden, wenn ein Skript nur einen Satz Standardsystembefehle ohne interne Befehle enthält Shell-Anweisungen.

So führen Sie ein Shell-Skript unter Linux aus

Die herkömmliche Syntax zum Aufrufen eines Shell-Skripts lautet:

script_name  argument1 ... argumentN

Eine andere mögliche Form besteht darin, die Shell, die das Skript ausführt, wie folgt klar anzugeben:

shell script_name argument1 ... argumentN  

Zum Beispiel:

/bin/bash script_name argument1 ... argumentN     [For bash scripting]
/bin/ksh script_name argument1 ... argumentN      [For ksh scripting]
/bin/sh script_name argument1 ... argumentN       [For sh scripting]

Für Skripte, die nicht #! in der ersten Zeile haben und nur grundlegende Systembefehle wie den folgenden enthalten:


#script containing standard system commands
cd /home/$USER
mkdir tmp
echo "tmp directory created under /home/$USER"

Machen Sie es einfach ausführbar und führen Sie es wie folgt aus:


chmod +x  script_name
./script_name 

Methoden zum Aktivieren des Shell-Skript-Debugging-Modus

Nachfolgend finden Sie die wichtigsten Debugging-Optionen für Shell-Skripte:

  1. -n (kurz für noexec oder no ecxecution) – weist die Shell an, alle Befehle zu lesen, führt sie jedoch nicht aus. Diese Option aktiviert den Syntaxprüfungsmodus.
  2. -x (kurz für xtrace oder Ausführungs-Trace) – weist die Shell an, alle Befehle und ihre Argumente auf dem Terminal anzuzeigen, während sie ausgeführt werden. Diese Option aktiviert den Shell-Tracing-Modus.

1. Ändern der ersten Zeile eines Shell-Skripts

Der erste Mechanismus besteht darin, die erste Zeile eines Shell-Skripts wie folgt zu ändern. Dadurch wird das Debuggen des gesamten Skripts ermöglicht.

#!/bin/sh option(s)

Im obigen Formular kann die Option eine oder eine Kombination der oben genannten Debugging-Optionen sein.

2. Aufrufen der Shell mit Debugging-Optionen

Die zweite Möglichkeit besteht darin, die Shell wie folgt mit Debugging-Optionen aufzurufen. Diese Methode aktiviert auch das Debuggen des gesamten Skripts.

shell option(s) script_name argument1 ... argumentN

Zum Beispiel:

/bin/bash option(s) script_name argument1 ... argumentN   

3. Verwenden Sie den integrierten Befehl „set Shell“.

Die dritte Methode besteht darin, den integrierten Befehl set zu verwenden, um einen bestimmten Abschnitt eines Shell-Skripts, beispielsweise eine Funktion, zu debuggen. Dieser Mechanismus ist wichtig, da er es uns ermöglicht, das Debuggen in jedem Segment eines Shell-Skripts zu aktivieren.

Wir können den Debugging-Modus mit dem Befehl set im Formular unten aktivieren, wobei option für eine der Debugging-Optionen steht.

set option 

Um den Debugging-Modus zu aktivieren, verwenden Sie:

set -option

Um den Debugging-Modus zu deaktivieren, verwenden Sie:

set +option

Wenn wir außerdem mehrere Debugging-Modi in verschiedenen Segmenten eines Shell-Skripts aktiviert haben, können wir sie alle auf einmal deaktivieren:

set -

Mit der Aktivierung des Shell-Skript-Debugging-Modus ist es vorerst soweit. Wie wir gesehen haben, können wir entweder ein gesamtes Shell-Skript oder einen bestimmten Abschnitt eines Skripts debuggen.

In den nächsten beiden Episoden dieser Serie werden wir uns mit der Verwendung der Shell-Skript-Debugging-Optionen befassen, um Ausführlichkeit, Syntaxprüfung und Shell-Tracing-Debugging zu erklären > Modi mit Beispielen.

Vergessen Sie nicht, Fragen zu diesem Leitfaden zu stellen oder uns über den Kommentarbereich unten Feedback zu geben. Bleiben Sie bis dahin mit Tecmint in Verbindung.