Depuración de scripts de shell: comprobación de sintaxis sin ejecutar

¿Hay alguna opción que pueda ofrecer para comprobar la sintaxis de un script de shell [bash] para comprobar la sintaxis de , pero en realidad no ejecuta nada ni causa ningún daño potencial?

Respuesta

Del bash(1) página de manual:

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

Comentarios

  • Obviamente. No sé por qué estaba tan ciego que no podía ver esto cuando estaba revisando las páginas del manual.

Responder

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

Bueno, no me dijo que faltaba el «si» en la línea 634, pero fue muy útil.

Comentarios

  • También ' s también vale la pena señalar que puede descargarlo y ejecutarlo localmente, se ejecuta en Haskell.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *