Fejlfinding af shell-scripts: Syntaks-kontrol uden at udføre

Er der en eller anden mulighed, jeg kan give for bare at kontrollere syntaksen for et [bash] shell-script for at kontrollere syntaxen for det, men faktisk ikke udføre noget eller forårsage nogen potentiel skade?

Svar

Fra bash(1) mandeside:

-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

  • Det er klart. Jeg ved ikke, hvorfor jeg var så blind, at jeg ikke kunne se dette, da jeg gennemgik manualsiderne.

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. 

Nå, det fortalte mig ikke, at “hvis” manglede på linje 634, men det var ret nyttigt.

Kommentarer

  • Det ' er også værd at bemærke, at du kan downloade og køre det lokalt, det kører i Haskell.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *