Buscar..


Depurando un script bash con "-x"

Use "-x" para habilitar la salida de depuración de las líneas ejecutadas. Puede ejecutarse en una sesión o script completo, o habilitarse programáticamente dentro de un script.

Ejecutar un script con salida de depuración habilitada:

$ bash -x myscript.sh

O

$ bash --debug myscript.sh

Activa la depuración dentro de un script bash. Opcionalmente, se puede volver a activar, aunque la salida de depuración se restablece automáticamente cuando sale el script.

#!/bin/bash
set -x   # Enable debugging
# some code here
set +x   # Disable debugging output. 

Comprobando la sintaxis de un script con "-n"

La marca -n le permite verificar la sintaxis de un script sin tener que ejecutarlo:

~> $ bash -n testscript.sh
testscript.sh: line 128: unexpected EOF while looking for matching `"'
testscript.sh: line 130: syntax error: unexpected end of file

Depurando usigh bashdb

Bashdb es una utilidad similar a gdb, ya que puede hacer cosas como establecer puntos de interrupción en una línea o en una función, imprimir contenido de variables, puede reiniciar la ejecución de scripts y más.

Normalmente puede instalarlo a través de su administrador de paquetes, por ejemplo en Fedora:

sudo dnf install bashdb 

O conseguirlo desde la página de inicio . Luego puedes ejecutarlo con tu script como parámetro:

bashdb <YOUR SCRIPT>

Aquí hay algunos comandos para comenzar:

l - show local lines, press l again to scroll down
s - step to next line 
print $VAR - echo out content of variable 
restart - reruns bashscript, it re-loads it prior to execution.
eval - evaluate some custom command, ex: eval echo hi

b <line num> set breakpoint on some line 
c - continue till some breakpoint 
i b - info on break points 
d <line #> - delete breakpoint at line #

shell - launch a sub-shell in the middle of execution, this is handy for manipulating variables

Para obtener más información, recomiendo consultar el manual: http://www.rodericksmith.plus.com/outlines/manuals/bashdbOutline.html

Véase también la página de inicio:
http://bashdb.sourceforge.net/



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow