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