4. Depuración de shell-scripts¶
Si bien la programación de shell-scripts no se puede depurar fácilmente, los shells suelen ofrecer algunos mecanismos en este aspecto. En concreto, tanto bash como dash ofrecen los siguientes argumentos, que pueden usarse simultáneamente:
-
-x
¶
Traza: expande cada orden simple, e imprime por pantalla la orden con sus argumentos, y a continuación su salida.
-
-v
¶
Verbose: Imprime en pantalla cada elemento completo del script (estructura de control, …) y a continuación su salida.
También es posible depurar sólo parte del script insertando en él los siguientes comandos (pueden usarse igualmente en la propia línea de comandos):
|
Activa las trazas/verbose. Ubicarlo justo antes del trozo del script que se desea depurar. |
|
Desactiva las trazas/verbose. Ubicarlo justo después del trozo del script que se desea depurar. |
TAREAS
Mire el contenido del siguiente script en su sistema y compruebe que tiene el permiso de ejecución general:
#!/bin/sh echo Hola if true; then echo hola2 ls / fi
Invoque dicho script con las siguientes opciones de depuración y analice la salida:
/bin/bash script_depuracion.sh /bin/bash -x script_depuracion.sh /bin/bash -v script_depuracion.sh /bin/bash -xv script_depuracion.sh /bin/dash -x script_depuracion.sh /bin/dash -v script_depuracion.sh /bin/dash -xv script_depuracion.sh
Modifique el script para que tenga el siguiente contenido:
#!/bin/sh echo Hola set -xv if true; then echo hola2 ls / fi set +xv
Invoque dicho script con los siguientes comandos y analice la salida:
script_depuracion2.sh /bin/dash script_depuracion2.sh /bin/bash script_depuracion2.sh