Comprobar la sintaxis en Bash

Naila Saad Siddiqui 15 febrero 2024
  1. Utilice el editor en línea ShellCheck
  2. Utilice el comando bash -n (modo noexec)
  3. Usa el comando sh
Comprobar la sintaxis en Bash

Este artículo analiza formas de verificar un script de Bash en busca de problemas sintácticos sin ejecutar el script.

Los errores de sintaxis ocurren debido a algunos errores gramaticales o tipográficos en el código. En los compiladores modernos de otros lenguajes de programación, los compiladores resaltan estos errores incluso antes de ejecutar el programa.

Este no es el caso en los scripts de Bash porque Bash es un intérprete de línea de comandos. Por lo tanto, debemos verificar los errores de sintaxis por separado.

Puede haber diferentes técnicas para verificar problemas sintácticos como los siguientes.

Utilice el editor en línea ShellCheck

Hay una herramienta en línea, Shell Check, para verificar el script en busca de errores de sintaxis. La herramienta se puede encontrar aquí.

Comprobación de concha

En la imagen de arriba, hay dos ventanas separadas. Uno es el editor de código, y la parte inferior muestra la lista de errores y advertencias en su código especificando números de línea.

El editor ShellCheck es una herramienta muy útil para programadores principiantes y expertos porque detecta problemas menores a avanzados en el código antes de ejecutarlo.

Utilice el comando bash -n (modo noexec)

También puede usar el indicador -n (noexec) con el comando bash para comprobar si hay errores en el script.

bash -n [script-name]

Esto solo leerá todos los comandos en el script y buscará errores sin ejecutarlos. Si hay errores en los comandos, los mostrará; de lo contrario, no se mostrará ninguna salida.

Por ejemplo, considere el siguiente script.

Guión de muestra

Tenga en cuenta que nos hemos perdido el cierre de la declaración if (es decir, usamos fi en lugar de if). Por lo tanto, dará el error.

error mostrado con el comando bash -n

Usa el comando sh

Otro comando para verificar errores de sintaxis es:

sh -n [script-name]

Ejecutaremos el comando para el mismo script discutido en la sección anterior y verificaremos si hay errores.

error mostrado con el comando sh