Cómo habilitar el modo de depuración de secuencias de comandos de Shell en Linux

Cómo habilitar el modo de depuración de secuencias de comandos de Shell en Linux

Un script es simplemente una lista de comandos almacenados en un archivo. En lugar de ejecutar una secuencia de comandos escribiéndolos uno por uno todo el tiempo en la terminal, un usuario del sistema puede almacenarlos todos (comandos) en un archivo e invoca repetidamente el archivo para volver a ejecutar los comandos varias veces.

Mientras aprendemos secuencias de comandos o durante las primeras etapas de la escritura de secuencias de comandos, normalmente comenzamos escribiendo secuencias de comandos pequeñas o cortas con unas pocas líneas de comandos. Y normalmente depuramos dichos scripts sin hacer nada más que observar su salida y asegurarnos de que funcionen como pretendíamos.

Sin embargo, a medida que comenzamos a escribir scripts muy largos y avanzados con miles de líneas de comandos, por ejemplo, scripts que modifican la configuración del sistema, realizan copias de seguridad críticas en redes y muchos más, nos daremos cuenta de que solo mirar la salida de un script no es suficiente para encontrar errores dentro de un script.

Por lo tanto, en este Depuración de scripts de shell en la serie Linux, veremos cómo habilitar la depuración de scripts de shell, pasaremos a explicar los diferentes modos de depuración de scripts de shell y cómo utilizarlos en la siguiente serie.

Cómo iniciar un script

Un script se distingue de otros archivos por su primera línea, que contiene un #! ( She-bang. define el tipo de archivo) y un nombre de ruta (ruta al intérprete) que informa al sistema que el archivo es una colección de comandos que serán interpretados por el programa especificado (intérprete).

freestar.config.enabled_slots.push

A continuación se muestran ejemplos de las “primeras líneas” en diferentes tipos de scripts:

# !/bin/sh [Para secuencias de comandos sh. #!/bin/bash [Para secuencias de comandos bash. #!/usr/bin/perl [Para perl. programación] #!/bin/awk-f [Para secuencias de comandos awk.

Nota. La primera línea o # ! se puede omitir si un script contiene solo un conjunto de comandos del sistema estándar, sin ninguna directiva de shell interna.

Cómo ejecutar un script de shell en Linux

La sintaxis convencional para invocar un script de shell es:

$ script_name argumento1 … argumentoN

Otra forma posible es especificando claramente el shell que ejecutará el script como se muestra a continuación:

$ shell script_name argumento1 … argumentoN

Por ejemplo:

$/bin/bash script_name argumento1 … argumentoN [Para scripting. de bash] $/bin/ksh nombre_de_scripts argumento1 … argumentoN [Para scripts de ksh. $/bin/sh nombre_de_scripts argumento1 … argumentoN [Para sh. scripting]

Para scripts que no tienen #! como la primera línea y solo contiene comandos básicos del sistema como el siguiente:

#script que contiene comandos estándar del sistema cd/home/$ USER mkdir tmp echo “directorio tmp creado en/home/$ USER”

Simplemente hágalo ejecutable y ejecútelo de la siguiente manera:

$ chmod + x script_name $ ./script_name

Métodos para habilitar el modo de depuración del script de shell

A continuación se muestran las opciones de depuración del script de shell principal:

  1. -v (abreviatura de detallado)-le dice al shell que muestre todas las líneas en un script mientras se leen, activa el modo detallado.
  2. -n (abreviatura de noexec o no ecxecution): le indica al shell que lea todos los comandos, pero no los ejecuta. Esta opción activa el modo de verificación de sintaxis.
  3. -x (abreviatura de xtrace o seguimiento de ejecución)-le dice al shell que muestre todos los comandos y sus argumentos en la terminal mientras se ejecutan. Esta opción habilita el modo de rastreo de shell.

1. Modificación de la primera línea de un script de shell

El primer mecanismo es alterar la primera línea de un script de shell como se muestra a continuación, esto permitirá la depuración del script completo.

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

En el formulario anterior, la opción puede ser una o una combinación de las opciones de depuración anteriores.

2. Invocar Shell con opciones de depuración

La segunda es invocando el shell con las opciones de depuración de la siguiente manera, este método también activará la depuración de todo el script.

$ opciones de shell nombre_de_script argumento1 … argumentoN

Por ejemplo:

$/bin/bash opción (es) script_name argumento1 … argumentoN 3. Uso del comando set Shell incorporado

El tercer método es usar el comando set incorporado para depurar una sección determinada de un script de shell como una función. Este mecanismo es importante, ya que nos permite activar la depuración en cualquier segmento de un script de shell.

Podemos activar el modo de depuración usando el comando set. en el formulario a continuación, donde la opción es cualquiera de las opciones de depuración.

$ set option

Para habilitar el modo de depuración, use:

$ set-option

Para deshabilitar el modo de depuración, use:

$ set + option

Además, si hemos habilitado varios modos de depuración en diferentes segmentos de un script de shell, podemos deshabilitarlos todos a la vez así:

$ set-

Eso es todo por ahora con la habilitación del modo de depuración del script de shell. Como hemos visto, podemos depurar un script de shell completo o una sección particular de un script.

En los dos próximos episodios de esta serie, cubriremos cómo usar las opciones de depuración del script de shell para explique los modos detallado. comprobación de sintaxis. y depuración de rastreo de shell. con ejemplos.

Es importante destacar que no olvide hacer preguntas sobre esta guía o quizás envíenos sus comentarios a través de la sección de comentarios a continuación. Hasta entonces, mantente conectado a Tecmint.