Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

¿Cómo se puede depurar un script de Bash?

4 de junio de 2011

¿Existe alguna forma de depurar los scripts de Bash? Me gustaría activar algo para que se muestre una especie de log con lo que está sucediendo al ejecutar el script. Ejemplo: ejecutando la primera línea, error de sintaxis tal y cual, ejecutando la línea 2, etc.

Estás leyendo una traducción autorizada de la pregunta How to debug a bash script? planteada por corvus en StackOverflow.

Respuestas

#1

Una forma sencilla de depurar los scripts es utilizar la opción -x al ejecutarlos:

$ sh -x mi_script
$ bash -x mi_script

Si prefieres activar y desactivar la depuración dentro del propio script, utiliza lo siguiente:

# activar la depuración
set -x
 
# comandos del script ...
 
# desactivar la depuración
set +x
 
# seguir ejecutando comandos ...

Además de set -x, también puedes utilizar:

  • set -e, hace que el script se detenga tan pronto como cualquiera de sus comandos falle (es decir, devuelva un código de salida diferente a 0).
  • set -n, comprueba si tu script contiene algún error de sintaxis.
  • set -v, activa el modo verbose, que hace que se muestre mucha más información sobre la ejecución.

@librosweb

9 octubre 2014, 10:30