Cómo habilitar el modo de “Debugging” de comandos de shell en Linux

Publicidad

La forma más sencilla de explicar un script, es diciendo que este mismo es una simple serie de comandos almacenados en cualquiera de nuestros archivos. Entonces, en vez de correr varios comandos y escribirlos una y otra vez, el usuario podría optar por la opción de almacenarlos todos estos comandos, si los utiliza mucho, y utilizarlos cuantas veces necesite.

Al aprender cómo programar los scripts, es normal que se empiece escribiendo scripts cortos ya que sólo queremos que hagan las cosas que necesitamos, las cuales usualmente son sencillas.

Pero con el pasar del tiempo, y mientras más vayamos aprendiendo, nuestras necesidades nos harán crear comandos impresionantemente largos y difíciles de recordar o de escribir rápidamente.

Un buen ejemplo de ello son los comandos que configuran el sistema para llevar a cabo copias de seguridad. Al ser comandos tan largos, solo con ver la salida de los mismos no nos podremos dar cuenta de sus posibles errores.

Por lo tanto, en este artículo se ha decidido hablar del proceso de “debugging” para Linux y pasaremos a explicar los diferentes modos de “Debugging” de script de shell y cómo utilizarlos en la serie posterior.

Iniciar el script

Para comenzar con este tutorial, hablaremos de como iniciar un script. Este script se define de los demás archivos por la línea con la que empieza; esta línea posee la definición del archivo y, por supuesto, la ruta a seguir para encontrarlo. Con esto, el script le da la información necesaria al sistema para que pueda leer los distintos comandos utilizados.

La sintaxis convencional para invocar una secuencia de comandos de shell es la siguiente:

Script_nombre argumento1 … argumentoN

Otra manera que puede ser bastante útil es el dejarle en claro al Shell lo que ejecutará el script, para ello tan solo hay que hacer lo siguiente:

Publicidad

Shell script_nombre argumento1 … argumentoN

Por ejemplo:

/Bin/bash script_nombre argumento1 … argumentoN [Para bash scripting]

/Bin/ksh script_ nombre argumento1 … argumentoN [Para scripts ksh]

/Bin/sh script_ nombre argumento1 … argumentoN [For sh scripting]

Entonces, para los comandos creados que no posean “#!” entre su primera línea, pero que solamente posee comandos sencillos, hay que hacer lo que se muestra a continuación:

Cd/home/$USER

Mkdir tmp

Echo “tmp creado en/home/$USER”

Basta con hacerlo ejecutable y ejecutarlo de la siguiente manera:

Chmod + x script_ nombre

./script_ nombre

Los métodos para habilitar el modo de “Debugging” de secuencias de comandos de Shell es otra cosa de la que hablaremos y que será muy importante. Es por este motivo que a continuación, mostraremos algunos de ellos.

  1. -v (short para verbose): Este hace que todas las líneas del script sean comprendidas por el Shell y activa el “modo verboso”.
  2. -n (abreviatura de noexec o no ecxecution): Hace que el Shell lea todos los comandos, pero sin ejecutarlos para así poner en marcha el modo de comprobación de sintaxis.
  3. –x: Con este, el Shell mostrará todos los comandos y los explicará mientras que son ejecutados en la terminal.

Primero, hablaremos de la modificación de la primera línea de una secuencia de comandos de Shell. El primer mecanismo nos lleva a la alteración del script mismo para así llegar a su propia depuración. A continuación, se muestra un ejemplo de esto:

#!/Bin/sh opción (es)

Así, podemos ver que se pueden mezclar distintas opciones para que se acople mejor a nuestras necesidades.

También, existe el método de invocar Shell con opciones de depuración. El segundo es diciéndole al shell que ejecute todas las opciones de depuración de la siguiente manera, este método también activará la depuración de todo el script.

Shell opción (es) script_ nombre argumento1 … argumentoN

Por ejemplo:

/Bin/bash opción (es) script_ nombre argumento1 … argumentoN

Ante cualquier duda, no olviden dejarla en los comentarios y con mucho gusto les ayudaremos. 😉