Debuggen van shell-scripts: syntax controleren zonder

Is er een optie die ik kan geven om de syntaxis van een [bash] shell-script te controleren om de syntaxis van uitvoeren, maar eigenlijk niets uitvoeren of enige mogelijke schade veroorzaken?

Antwoord

Van de bash(1) man-pagina:

-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. 

Reacties

  • Uiteraard. Ik weet niet waarom ik zo blind was dat ik dit niet kon zien toen ik door de man-paginas liep.

Antwoord

Probeer 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. 

Nou, het vertelde me niet dat de “if” ontbrak op regel 634, maar het was behoorlijk nuttig.

Opmerkingen

  • Het ' is ook vermeldenswaard dat u het lokaal kunt downloaden en uitvoeren, het draait in Haskell.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *