Depurando scripts de shell: verificação de sintaxe sem executar

Há alguma opção que eu possa dar para apenas verificar a sintaxe de um script de shell [bash] para verificar a sintaxe de , mas não executa nada nem causa danos potenciais?

Resposta

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

Comentários

  • Obviamente. Não sei por que fiquei tão cego que não pude ver isso quando estava nas páginas de manual.

Resposta

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

Bem, ele não me disse que “se” estava faltando na linha 634, mas foi muito útil.

Comentários

  • É ' também importante notar que você pode fazer o download e executá-lo localmente, ele é executado em Haskell.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *