So führen Sie die Syntax -Überprüfung des Debugging -Modus in Shell -Skripten durch
- 1165
- 154
- Hr. Moritz Bozsik
Wir haben die Shell -Skript -Debugging -Serie gestartet, indem wir die verschiedenen Debugging -Optionen erläutert und wie man Shell -Skript -Debugging -Modi aktiviert.
Nachdem wir Ihre Shell -Skripte geschrieben haben, wird empfohlen, die Syntax in den Skripten praktisch zu überprüfen, bevor wir sie ausführen, anstatt die Ausgabe zu betrachten, um zu bestätigen, dass sie korrekt arbeiten.
In diesem Teil der Serie werden wir die Verwendung des Debugging -Modus der Syntax -Überprüfung durchlaufen. Denken Sie daran, wir haben die verschiedenen Debugging -Optionen im ersten Teil dieser Serie erklärt und hier werden wir sie verwenden, um das Skript -Debugging durchzuführen.
Aktivieren des ausführlichen Debugging -Modus
Bevor wir uns zum Hauptaugenmerk dieses Handbuchs bewegen, lassen Sie uns das kurz untersuchen ausführlicher Modus. Es wird durch die aktiviert -v
Debugging -Option, mit der die Shell alle Zeilen in einem Skript angezeigt wird, während sie gelesen werden.
Um zu demonstrieren, wie dies funktioniert, finden Sie unten ein Beispiel -Shell -Skript, um PNG -Bilder in das JPG -Format umzuwandeln.
Geben Sie es in einer Datei ein (oder kopieren und einfügen).
#!/bin/bash #Convert für das Bild in *.PNG; Konvertieren Sie "$ image" $ Image%.png.JPG "Echo" Bild $ Bild konvertiert in $ Image%.png.JPG "Done beenden 0
Speichern Sie dann die Datei und erstellen Sie das Skript mit dem folgenden Befehl ausführbar:
$ chmod +x Skript.Sch
Wir können das Skript aufrufen und alle Zeilen darin anzeigen, wie sie von der Shell so gelesen werden:
$ bash -v Skript.SchZeigen Sie alle Zeilen im Shell -Skript an
Aktivieren der Syntax -Überprüfung des Debugging -Modus in Shell -Skripten
Kommen Sie auf unser Thema des Schwerpunkts zurück, die -N
aktiviert den Syntax -Überprüfungsmodus. Es weist die Shell an, alle Befehle im Grunde zu lesen, sie jedoch nicht auszuführen. Sie (Shell) wird jedoch nur die verwendete Syntax untersucht.
Falls es Fehler in Ihrem Shell -Skript gibt, gibt die Shell die Fehler am Terminal aus. Andernfalls zeigt sie nichts an.
Die Syntax zur Aktivierung der Syntaxprüfung lautet wie folgt:
$ bash -n Skript.Sch
Da die Syntax im Skript korrekt ist, wird in dem obigen Befehl keine Ausgabe angezeigt. Lassen Sie uns daher versuchen, das zu entfernen Erledigt
Wort, das die für Schleife schließt und feststellt, ob es einen Fehler zeigt:
Unten finden Sie das modifizierte Shell -Skript, um PNG -Bilder in JPG -Format zu konvertieren, das einen Fehler enthält.
#!/bin/bash #Script mit einem Fehler #Convert für das Bild in *.PNG; Konvertieren Sie "$ image" $ Image%.png.JPG "Echo" Bild $ Bild konvertiert in $ Image%.png.JPG "Beenden Sie 0
Speichern Sie die Datei und führen Sie sie dann aus, während Sie die Syntaxprüfung durchführen:
$ bash -n Skript.SchÜberprüfen Sie die Syntax im Shell -Skript
Aus der obigen Ausgabe können wir feststellen, dass ein Syntaxproblem mit unserem Skript vorhanden ist. Die für die Schleife fehlt ein Schluss Erledigt
Schlüsselwortwort. Und die Shell suchte bis zum Ende der Datei und sobald sie sie nicht gefunden hat ((Erledigt) Die Shell druckte einen Syntaxfehler:
Skript.SH: Zeile 11: Syntaxfehler: Unerwartetes Ende der Datei
Wir können auch den ausführlichen Modus und den Syntax -Überprüfungsmodus miteinander kombinieren:
$ bash -vn Skript.SchAktivieren Sie die ausführliche und syntaxe Überprüfung im Skript
Alternativ können wir die Überprüfung der Syntax aktivieren, indem wir die erste Zeile des obigen Skripts wie im nächsten Beispiel ändern.
#!/bin/bash -n #Achten Sie auf die erste Zeile eines Skripts, um die Syntax -Überprüfung #Convert für das Bild in * zu aktivieren.PNG; Konvertieren Sie "$ image" $ Image%.png.JPG "Echo" Bild $ Bild konvertiert in $ Image%.png.JPG "Beenden Sie 0
Speichern Sie die Datei nach wie vor und führen Sie sie aus, während Sie die Syntaxprüfung durchführen:
$ ./Skript.Sch Skript.SH: Zeile 12: Syntaxfehler: Unerwartetes Ende der Datei
Darüber hinaus können wir den Befehl Set Shell integriert, um den Debugging-Modus im obigen Skript zu aktivieren.
Im folgenden Beispiel überprüfen wir nur die Syntax der for -Schleife in unserem Skript.
#!/bin/bash #useusing set Shell integrierte Befehl zum Aktivieren von Debugging #Convert #Enable Debugging -Set -n für Image in *.PNG; Konvertieren Sie "$ image" $ Image%.png.JPG "Echo" Bild $ Bild konvertiert in $ Image%.png.JPG "#Disable Debugging Set +n Exit 0
Speichern Sie die Datei erneut und rufen Sie das Skript auf:
$ ./Skript.Sch
Zusammenfassend sollten wir immer sicherstellen, dass wir unsere Shell -Skripte syntaktisch überprüfen, um Fehler zu erfassen, bevor wir sie ausführen.
Um uns Fragen oder Feedback zu diesem Handbuch zu senden, verwenden Sie das folgende Antwortformular. Im dritten Teil dieser Serie werden wir uns mit dem Debugging -Modus von Shell Tracing verfolgen und verwenden.
- « Installieren Sie Adobe Flash Player 11.2 auf CentOS/RHEL 7/6 und Fedora 25-20
- 9 Tools zur Überwachung von Linux -Festplatten -Partitionen und Verwendung unter Linux »