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
Relacionado:
Table of Contents