Depanarea scripturilor shell: verificarea sintaxei fără executarea

Există o opțiune pe care o pot oferi doar pentru a verifica sintaxa unui script shell [bash] pentru a verifica sintaxa dar nu executați nimic și nici nu provocați daune potențiale?

Răspuns

Din bash(1) pagina man:

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

Comentarii

  • Evident. Nu știu de ce am fost atât de orb încât nu am putut vedea acest lucru când am trecut prin paginile manualului.

Răspuns

Încercați 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. 

Ei bine, nu mi-a spus „dacă” lipsea pe linia 634, dar a fost destul de util.

Comentarii

  • ' merită de asemenea remarcat faptul că îl puteți descărca și rula local, rulează în Haskell.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *