¿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
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 a0
).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