Cómo habilitar el modo de depuración de script de shell en Linux

Cómo habilitar el modo de depuración de script 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 el 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 escribir scripts, normalmente comenzamos escribiendo scripts pequeños o cortos con algunas líneas de comandos. Y generalmente depuramos tales guiones al no hacer nada más que mirar su producción y asegurar 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 a través de las redes y muchas 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 esta depuración de script de shell en la serie Linux, pasaremos por cómo habilitar la depuración de script de shell, avanzaremos para explicar los diferentes modos de depuración de script de shell y cómo usarlos en la serie posterior.

Cómo iniciar un script

Se distingue un script de otros archivos por su primera línea, que contiene un #! (El asunto - 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á interpretado por el programa especificado (intérprete).

A continuación se presentan ejemplos de las "primeras líneas" en diferentes tipos de scripts:

#!/bin/sh [para mierda Scripting] #!/bin/bash [para intento Scripting] #!/usr/bin/perl [para perl Programación] #!/bin/awk -f [para asombrar Scripting] 

Nota: La primera línea o #! se puede dejar fuera si un script contiene solo un conjunto de comandos de 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 posible forma es especificando claramente el shell que ejecutará el script como a continuación:

$ shell script_name argumento1 ... argumenton 

Por ejemplo:

$ /bin /bash script_name argumento1 ... argumento [para intento Scripting] $ /bin /ksh script_name argumento1 ... argumento [para ksh Scripting] $ /bin /sh script_name argumento1 ... argumento [para mierda Scripting] 

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

#Script que contiene comandos de sistema estándar CD /HOME /$ user mkdir tmp echo "directorio tmp creado en /home /$ user" 

Simplemente hágalo ejecutable y ejecutarlo de la siguiente manera:

$ chmod +x script_name $ ./script_name 

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

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

  1. -V (abreviatura de verbosa): le dice al shell que muestre todas las líneas en un script mientras se leen, activa el modo detallado.
  2. -norte (abreviatura de noexec o no ecxecution) - instruye al shell leer todos los comandos, sin embargo, no los ejecuta. Estas opciones activa el modo de verificación de sintaxis.
  3. -X (abreviatura de Xtrace o traza 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 carcasa.

1. Modificando 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 de todo el script.

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

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

2. Invocar a Shell con opciones de depuración

El segundo es invocar el shell con opciones de depuración de la siguiente manera, este método también encenderá la depuración de todo el script.

$ shell opción (s) script_name argumento1 ... argumenton 

Por ejemplo:

$ /bin /bash opción (s) script_name argumento1 ... argumenton 

3. Usando el comando set shell incorporado

El tercer método es utilizando el comando set integrado para depurar una sección dada 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 colocar Comando en el formulario a continuación, donde la opción está cualquiera de las opciones de depuración.

Opción de $ establecida 

Para habilitar el modo de depuración, use:

$ set -option 

Para deshabilitar el modo de depuración, use:

$ set +opción 

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 habilitar el modo de depuración de script de shell. Como hemos visto, podemos depurar un script de shell completo o una sección particular de un script.

En los próximos dos episodios de esta serie, cubriremos cómo usar las opciones de depuración de script de shell para Explicar demasiado, Verificación de sintaxis y depuración de rastreo de shell Modos con ejemplos.

Es importante destacar que no olvide hacer ninguna pregunta sobre esta guía o tal vez proporcionarnos comentarios a través de la sección de comentarios a continuación. Hasta entonces, mantente conectado a TecMint.