Estructuras básicas de un script de bash utilizando el condicional if

La estructura if se utiliza para ejecutar comandos basados en una condición. Si la condición es verdadera, se ejecutan los comandos dentro del bloque then.

Estructura básica

if [ condición ]; then
# comandos a ejecutar si la condición es verdadera
fi

Estructura con else
Se utiliza else para especificar comandos que se ejecutarán si la condición es falsa.

if [ condición ]; then
# comandos a ejecutar si la condición es verdadera
else
# comandos a ejecutar si la condición es falsa
fi

Estructura con elif
elif permite agregar condiciones adicionales. Si la primera condición es falsa, se evalúa la siguiente.

if [ condición1 ]; then
# comandos a ejecutar si la condición1 es verdadera
elif [ condición2 ]; then
# comandos a ejecutar si la condición2 es verdadera
else
# comandos a ejecutar si ninguna de las condiciones anteriores es verdadera
fi

Ejemplo:
Un ejemplo práctico que utiliza if, elif y else

#!/bin/bash

echo “Introduce un número:”
read numero

if [ $numero -gt 10 ]; then
echo “El número es mayor que 10”
elif [ $numero -eq 10 ]; then
echo “El número es igual a 10”
else
echo “El número es menor que 10”
fi

Estructura con múltiples condiciones
Puedes combinar varias condiciones utilizando operadores lógicos como && (AND) para que los comandos se ejecuten solo si todas las condiciones son verdaderas.

if [ condición1 ] && [ condición2 ]; then
# comandos a ejecutar si ambas condiciones son verdaderas
fi

Ejemplo :

#!/bin/bash

echo “Introduce dos números:”
read numero1
read numero2

if [ $numero1 -gt 10 ] && [ $numero2 -lt 20 ]; then
echo “El primer número es mayor que 10 y el segundo número es menor que 20”
fi

Estructura con negación
Puedes utilizar ! para negar una condición, de modo que los comandos se ejecuten si la condición es falsa.

if ! [ condición ]; then
# comandos a ejecutar si la condición es falsa
fi

Ejemplo práctico

#!/bin/bash

echo “Introduce un número:”
read numero

if ! [ $numero -eq 10 ]; then
echo “El número no es igual a 10”
fi

Estructura con case (alternativa a if)
La estructura case es útil cuando tienes múltiples patrones a evaluar. Es una alternativa más limpia y legible a múltiples if-elif-else.

case variable in
patrón1)
# comandos a ejecutar si la variable coincide con el patrón1
;;
patrón2)
# comandos a ejecutar si la variable coincide con el patrón2
;;
*)
# comandos a ejecutar si la variable no coincide con ninguno de los patrones anteriores
;;
esac

Ejemplo práctico

#!/bin/bash

echo “Introduce una letra:”
read letra

case $letra in
[a-z])
echo “Has introducido una letra minúscula”
;;
[A-Z])
echo “Has introducido una letra mayúscula”
;;
*)
echo “No has introducido una letra”
;;
esac