•
Como hacer debug de un shell script
Al hacer shell scripts todos nos hemos encontrado que no sabemos que esta pasando en el script que hace que no funcione. Evidentemente siempre tenemos la opción de los echos, pero también podemos usar el set para ver paso a paso que se esta ejecutando.
Vamos a suponer el siguiente script como ejemplo:
#!/bin/bash
set -v
if [ $1 -ne "0" ];
then
echo a;
else
echo b;
fi
if [ $1 -ne "3" ];
then
echo c;
else
echo d;
fi
Para ver que ocurre en el script podemos usar set con las opciones -xv:
- Mediante -x podemos ver la expansión de los comando que se ejecuten, por ejemplo:
# ./ejemplo 0 + '[' 0 -ne 0 ']' + echo b b + '[' 0 -ne 3 ']' + echo c c
- Mediante -v podemos ver el trozo de script leído hasta cada punto de ejecución, por ejemplo:
# ./ejemplo 0 if [ $1 -ne "0" ]; then echo a; else echo b; fi b if [ $1 -ne "3" ]; then echo c; else echo d; fi c
Podemos combinar las dos opciones y tendremos una salida similar a la siguiente:
# ./ejemplo 2
if [ $1 -ne "0" ];
then
echo a;
else
echo b;
fi
+ '[' 2 -ne 0 ']'
+ echo a
a
if [ $1 -ne "3" ];
then
echo c;
else
echo d;
fi
+ '[' 2 -ne 3 ']'
+ echo c
c
De esta forma va a resultar mucho más sencillo ver que esta ocurriendo en un script
Relacionados
Imprimir
•
2 comments to “Como hacer debug de un shell script”
•
21. July 2010 at 8:51 am :
Yo lo ejecuto sin modificar el código con la orden: sh -vx script.sh
——
Gracias por el blog.
22. July 2010 at 8:02 am :
Yo siempre lo he usado modificando el script, pero tal como dices desde la shell es mucho más cómodo. Muchas gracias!!!
Muchas gracias a ti por seguirlo!