Automatización y scripting básico

Manejo de errores

Lección 7 de 10

Aprender a detectar y manejar errores en scripts de Bash para hacerlos más confiables.

Duración estimada: 8 min

Objetivos

  • Comprender cómo Bash maneja errores
  • Detectar errores en comandos
  • Controlar el comportamiento del script ante fallos

Lección

Manejo de errores

Cuando ejecutamos comandos en Linux, cada comando devuelve un código de salida.

Este código indica si el comando se ejecutó correctamente o si ocurrió un error.

Comprender estos códigos permite crear scripts más robustos y confiables.


Código de salida

Después de ejecutar un comando, Bash guarda el resultado en una variable especial:

$?

Los códigos más comunes son:

0   ejecución exitosa
1   ocurrió un error

Ejemplo:

ls archivo.txt
echo $?

Si el archivo existe, el resultado será:

0

Si no existe:

1

Usar códigos de salida en condicionales

Podemos usar el código de salida para tomar decisiones en un script.

Ejemplo:

#!/bin/bash

ls archivo.txt

if [ $? -eq 0 ]
then
echo "El comando se ejecutó correctamente"
else
echo "Ocurrió un error"
fi

Esto permite reaccionar cuando un comando falla.


Manejo simple de errores

Un patrón común es verificar si un archivo existe antes de usarlo.

Ejemplo:

#!/bin/bash

archivo="datos.txt"

if [ -f "$archivo" ]
then
echo "Procesando archivo..."
else
echo "El archivo no existe"
fi

Esto evita errores en el script.


Detener script cuando ocurre un error

En algunos casos queremos que el script se detenga inmediatamente si ocurre un error.

Esto se puede hacer usando:

set -e

Ejemplo:

#!/bin/bash

set -e

echo "Iniciando script"
ls archivo_inexistente
echo "Este mensaje no aparecerá"

Si ocurre un error, el script termina automáticamente.


Mostrar errores claros

También es buena práctica mostrar mensajes claros cuando ocurre un error.

Ejemplo:

echo "Error: el archivo no existe"

Esto ayuda a entender qué ocurrió cuando el script falla.


Ejemplo práctico

#!/bin/bash

archivo=$1

if [ -f "$archivo" ]
then
echo "El archivo existe"
else
echo "Error: el archivo no fue encontrado"
exit 1
fi

Aquí usamos:

exit 1

para indicar que el script terminó con error.


Idea clave de esta lección

Los scripts de Bash pueden detectar errores usando códigos de salida y reaccionar adecuadamente para evitar fallos inesperados.


Rrepaso

  • Los comandos devuelven códigos de salida.
  • 0 indica éxito.
  • $? contiene el código del último comando.
  • set -e detiene el script si ocurre un error.
  • Los scripts pueden mostrar mensajes de error y usar exit.
AnteriorCompleta esta lección para desbloquear la siguiente