Feilsøking av skallskript: Syntakskontroll uten å utføre

Er det noe alternativ jeg kan gi for å bare sjekke syntaksen til et [bash] skallskript for å sjekke syntaksen til det, men ikke faktisk utføre noe eller forårsake potensiell skade?

Svar

Fra bash(1) manside:

-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

  • Tydeligvis. Jeg vet ikke hvorfor jeg var så blind at jeg ikke kunne se dette da jeg var gjennom manualsidene.

Svar

Prøv 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. 

Vel, det fortalte meg ikke om «hvis» manglet på linje 634, men det var ganske nyttig.

Kommentarer

  • Det ' er også verdt å merke seg at du kan laste ned og kjøre det lokalt, det kjører i Haskell.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *