Manejo de errores de bash

Manejo de errores de bash

El manejo de errores es una parte muy importante de cualquier lenguaje de programación. Bash no tiene mejor opción que otros lenguajes de programación para manejar el error del script. Pero es esencial hacer que el script bash sea libre de errores al momento de ejecutar el script desde el terminal. La función de manejo de errores se puede implementar para el script bash de múltiples maneras. Las diferentes técnicas para manejar los errores en el script bash se muestran en este tutorial.

Ejemplo 1: Manejo de errores utilizando una declaración condicional

Cree un archivo bash con el siguiente script que muestra el uso de la declaración condicional para el manejo de errores. La primera instrucción "if" se usa para verificar el número total de argumentos de la línea de comando e imprimir un mensaje de error si el valor es inferior a 2. A continuación, los valores de dividendo y divisor se toman de los argumentos de la línea de comando. Si el valor del divisor es igual a 0, se genera un error y el mensaje de error se imprime en el error.archivo txt. El segundo comando "si" se usa para verificar si el error.El archivo txt está vacío o no. Se imprime un mensaje de error si el error.El archivo txt no está vacío.

#!/bin/bash
#Ceck los valores de argumento
if [$# -lt 2]; entonces
Echo "Falta uno o más argumentos."
salida
FI
#Leer el valor de dividendos del primer argumento de la línea de comandos
dividendo = $ 1
#Leer el valor del divisor del segundo argumento de línea de comandos
divisor = $ 2
#Divide el dividendo por el divisor
resultado = 'echo "escala = 2; $ dividend/$ divisor" | bc 2> error.TXT'
#Realice el contenido del archivo de error
contenido = 'Error de gato.TXT'
if [-n "$ content"]; entonces
#Imprima el mensaje de error si el error.txt no es vacío
Echo "Divisible por error cero ocurrido."
demás
#Imprima el resultado
echo "$ dividend/$ divisor = $ resultado"


Producción:

La siguiente salida aparece después de ejecutar el script anterior sin ningún argumento:


La siguiente salida aparece después de ejecutar el script anterior con un valor de argumento:


La siguiente salida aparece después de ejecutar el script anterior con dos valores de argumento válidos:


La siguiente salida aparece después de ejecutar el script anterior con dos valores de argumento donde el segundo argumento es 0. Se imprime el mensaje de error:

Ejemplo 2: Manejo de errores utilizando el código de estado de salida

Cree un archivo bash con el siguiente script que muestra el uso del manejo de errores de bash mediante el código de estado de salida. Cualquier comando bash se toma como valor de entrada y ese comando se ejecuta más tarde. Si el código de estado de salida no es igual a cero, se imprime un mensaje de error. De lo contrario, se imprime un mensaje de éxito.

#!/bin/bash
#Apas un nombre de comando de Linux
echo -n "Ingrese un comando:"
leer cmd_name
#RUN el comando
$ cmd_name
#Chek si el comando es válido o no es válido
Si [$? -ne 0]; entonces
echo "$ cmd_name es un comando inválido."
demás
echo "$ cmd_name es un comando válido."
FI
FI


Producción:

La siguiente salida aparece después de ejecutar el script anterior con el comando válido. Aquí, la "fecha" se toma como el comando en el valor de entrada que es válido:


La siguiente salida aparece después de ejecutar el script anterior para el comando no válido. Aquí, el "CMD" se toma como el comando en el valor de entrada que no es válido:

Ejemplo 3: Detenga la ejecución del primer error

Cree un archivo bash con el siguiente script que muestra el método para detener la ejecución cuando aparece el primer error del script. Se utilizan dos comandos no válidos en el siguiente script. Entonces, se generan dos errores. El script detiene la ejecución después de ejecutar el primer comando no válido usando el comando "set -e".

#!/bin/bash
#Establece la opción de terminar el script en el primer error
establecer -e
Echo 'Fecha y hora actuales:'
#Comando VALID
fecha
Echo 'Directorio de trabajo actual:'
#Comando inválido
CWD
Echo 'Login Username:'
#Comando VALID
quién soy
echo 'lista de archivos y carpetas:'
#Comando inválido
lista


Producción:

La siguiente salida aparece después de ejecutar el script anterior. El script detiene la ejecución después de ejecutar el comando no válido que es "cwd":

Ejemplo 4: Detenga la ejecución para una variable no inicializada

Cree un archivo bash con el siguiente script que muestra el método para detener la ejecución del script para la variable no inicializada. Los valores de nombre de usuario y contraseña se toman de los valores de argumento de la línea de comando. Si alguno de los valores de estas variables no está inicializado, se imprime un mensaje de error. Si ambas variables se inicializan, el script verifica si el nombre de usuario y la contraseña son válidos o no válidos.

#!/bin/bash
#Establezca la opción de finalizar el script para una variable no inicializada
set -u
#Set el primer valor de argumento de la línea de comandos al nombre de usuario
nombre de usuario = $ 1
#Set el segundo valor de argumento de línea de comandos a la contraseña
contraseña = $ 2
#Verificar el nombre de usuario y la contraseña son válidos o no válidos
if [[$ username == 'admin' && $ contraseña == 'Hidenseek']]; entonces
echo "usuario válido."
demás
Echo "Usuario inválido."
FI


Producción:

La siguiente salida aparece si el script se ejecuta sin usar ningún valor de argumento de línea de comandos. El script detiene la ejecución después de obtener la primera variable no inicializada:


La siguiente salida aparece si el script se ejecuta con un valor de argumento de línea de comandos. El script detiene la ejecución después de obtener la segunda variable no inicializada:


La siguiente salida aparece si el script se ejecuta con dos valores de argumento de línea de comandos: "admin" y "ocultar". Aquí, el nombre de usuario es válido pero la contraseña no es válida. Entonces, se imprime el mensaje de "usuario inválido":


El siguiente resultado aparece si el script se ejecuta con dos valores de argumento de línea de comandos: "admin" y "hidenseek". Aquí, el nombre de usuario y la contraseña son válidos. Entonces, se imprime el mensaje de "usuario válido":

Conclusión

Las diferentes formas de manejar los errores en el script bash se muestran en este tutorial utilizando múltiples ejemplos. Esperamos que esto ayude a los usuarios de BASH a implementar la función de manejo de errores en su script bash.