Finns det något alternativ jag kan ge för att bara kontrollera syntaxen för ett [bash] shell-skript för att kontrollera syntaxen för men inte faktiskt utföra något eller orsaka någon potentiell skada?
Svar
Från bash(1)
mansida:
-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.
Kommentarer
- Uppenbarligen. Jag vet inte varför jag var så blind att jag inte kunde se detta när jag gick igenom manuella sidor.
Svar
Testa 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.
Tja, det berättade inte för mig att ”om” saknades på rad 634 men det var ganska hjälpsamt.
Kommentarer
- Det är ' också värt att notera att du kan ladda ner och köra det lokalt, det körs i Haskell.