Debuggen von Shell-Skripten: Syntaxprüfung ohne Ausführung von

Gibt es eine Option, die ich geben kann, um nur die Syntax eines [bash] -Shell-Skripts zu überprüfen, um die Syntax von zu überprüfen es, aber nichts ausführen oder potenziellen Schaden verursachen?

Antwort

Von der bash(1) Manpage:

-n Read commands but do not execute them. This may be used to check a shell script for syntax errors. This is ignored by interactive shells. 

Kommentare

  • Offensichtlich. Ich weiß nicht, warum ich so blind war, dass ich das nicht sehen konnte, als ich die Handbuchseiten durchgesehen habe.

Antwort

Probieren Sie http://www.shellcheck.net

$ shellcheck myscript.sh In myscript.sh line 590: for f in $*; do ^-- SC1009: The mentioned parser error was in this for loop. In myscript.sh line 617: if [ ! -e "$somefile".vcf ]; then ^-- SC1046: Couldn"t find "fi" for this "if". ^-- SC1073: Couldn"t parse this if expression. In myscript.sh line 1026: done ^-- SC1047: Expected "fi" matching previously mentioned "if". ^-- SC1072: Unexpected keyword/token. Fix any mentioned problems and try again. 

Nun, es hat mir nicht gesagt, dass das „Wenn“ in Zeile 634 fehlte, aber es war ziemlich hilfreich.

Kommentare

  • ' Es ist auch erwähnenswert, dass Sie es herunterladen und lokal ausführen können. Es wird in Haskell ausgeführt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.