Shell-komentosarjojen virheenkorjaus: Syntaksin tarkistus suorittamatta

Onko jokin vaihtoehto, jonka voin antaa vain tarkistaa [bash] shell-komentosarjan syntaksin tarkistaaksesi se, mutta älä suorita mitään eikä aiheuta mahdollisia vahinkoja?

Vastaa

Alkaen bash(1) man-sivu:

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

Kommentit

  • Ilmeisesti. En tiedä miksi olin niin sokea, etten voinut nähdä tätä käydessäni läpi käsikirjan sivuja.

Vastaa

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

No, se ei kertonut minulle, että ”jos” puuttui riviltä 634, mutta se oli melko hyödyllinen.

Kommentit

  • ' on myös syytä huomata, että voit ladata ja suorittaa sen paikallisesti, se toimii Haskellissa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *