Überprüfen Sie die Syntax in Bash
-
Verwenden Sie den Online-Editor
ShellCheck
-
Verwenden Sie den Befehl
bash -n
(noexec
-Modus). -
Verwenden Sie den Befehl
sh
Dieser Artikel beschreibt Möglichkeiten, ein Bash-Skript auf syntaktische Probleme zu überprüfen, ohne das Skript auszuführen.
Syntaxfehler treten aufgrund einiger Grammatik- oder Tippfehler im Code auf. In den modernen Compilern anderer Programmiersprachen werden solche Fehler von Compilern bereits vor dem Ausführen des Programms hervorgehoben.
Dies ist in Bash-Skripten nicht der Fall, da Bash ein Befehlszeileninterpreter ist. Daher müssen wir die Syntaxfehler separat prüfen.
Es kann verschiedene Techniken geben, um syntaktische Probleme wie die folgenden zu überprüfen.
Verwenden Sie den Online-Editor ShellCheck
Es gibt ein Online-Tool, Shell Check, um das Skript auf Syntaxfehler zu überprüfen. Das Tool finden Sie hier.
In der Abbildung oben gibt es zwei separate Fenster. Einer ist der Code-Editor, und der untere Teil zeigt die Liste der Fehler und Warnungen in Ihrem Code, indem Zeilennummern angegeben werden.
Der ShellCheck
-Editor ist ein sehr hilfreiches Tool für Anfänger und erfahrene Programmierer, da er kleinere bis fortgeschrittene Probleme im Code erkennt, bevor er ausgeführt wird.
Verwenden Sie den Befehl bash -n
(noexec
-Modus).
Sie können auch das Flag -n
(noexec
) mit dem Befehl bash
verwenden, um nach Fehlern im Skript zu suchen.
bash -n [script-name]
Dadurch werden nur alle Befehle im Skript gelesen und auf Fehler geprüft, ohne sie auszuführen. Wenn es Fehler in den Befehlen gibt, werden sie angezeigt; andernfalls wird keine Ausgabe angezeigt.
Betrachten Sie beispielsweise das folgende Skript.
Beachten Sie, dass wir das Schließen der if
-Anweisung verpasst haben (d.h. wir haben fi
anstelle von if
verwendet). Also wird es den Fehler geben.
Verwenden Sie den Befehl sh
Ein weiterer Befehl zum Überprüfen auf Syntaxfehler lautet:
sh -n [script-name]
Wir führen den Befehl für dasselbe Skript aus, das im vorherigen Abschnitt beschrieben wurde, und suchen nach Fehlern.