La sintaxis básica de un bloque if-else
en bash es la siguiente:
Vamos a crear un script simple que comprueba si un número es positivo, negativo o cero.
read
para capturar el número introducido por el usuario.if
: "$numero" -gt 0
comprueba si el número es mayor que 0.elif
: "$numero" -lt 0
comprueba si el número es menor que 0.else
: Si ninguna de las condiciones anteriores se cumple, ejecuta el bloque else
.Números:
-eq
: Igual a.-ne
: No igual a.-lt
: Menor que.-le
: Menor o igual que.-gt
: Mayor que.-ge
: Mayor o igual que.Cadenas:
=
: Igual a.!=
: No igual a.-z
: Cadena de longitud cero.-n
: Cadena de longitud no cero.Vamos a crear un script que comprueba si una cadena está vacía o no.
#!/bin/bash
# Leemos una cadena del usuario
echo "Introduce una cadena:"
read cadena
# Comprobamos si la cadena está vacía
if [ -z "$cadena" ]; then
echo "La cadena está vacía."
else
echo "La cadena no está vacía."
fi
[ -z "$cadena" ]
: Comprueba si la longitud de la cadena es cero (cadena vacía).[ -n "$cadena" ]
: Comprueba si la longitud de la cadena no es cero (cadena no vacía).Vamos a crear un script que comprueba si un archivo existe y si es un directorio.
#!/bin/bash
# Leemos la ruta del archivo o directorio del usuario
echo "Introduce la ruta del archivo o directorio:"
read ruta
# Comprobamos si la ruta existe y si es un directorio
if [ -e "$ruta" ]; then
if [ -d "$ruta" ]; then
echo "Es un directorio."
else
echo "Es un archivo."
fi
else
echo "La ruta no existe."
fi
[ -e "$ruta" ]
: Comprueba si el archivo o directorio existe.[ -d "$ruta" ]
: Comprueba si la ruta es un directorio.Las estructuras if-else
en bash son esenciales para controlar el flujo de ejecución basado en condiciones. Los operadores de comparación y las condiciones permiten tomar decisiones lógicas en los scripts, lo que es fundamental para escribir scripts bash eficientes y funcionales.