Sentencias else if en Bash

Bash - Gnu/Linux
En un script de bash, las estructuras de control if-else permiten ejecutar bloques de código basados en condiciones.

05/07/2024 14:31:06 Update:05/07/2024 14:38:53

Sintaxis Básica

La sintaxis básica de un bloque if-else en bash es la siguiente:

#!/bin/bash

if [ condición ]; then
    # Código a ejecutar si la condición es verdadera
elif [ otra_condición ]; then
    # Código a ejecutar si la otra_condición es verdadera
else
    # Código a ejecutar si ninguna condición es verdadera
fi

Ejemplo Simple

Vamos a crear un script simple que comprueba si un número es positivo, negativo o cero.

#!/bin/bash

# Leemos un número del usuario
echo "Introduce un número:"
read numero

# Comprobamos si el número es positivo, negativo o cero
if [ "$numero" -gt 0 ]; then
    echo "El número es positivo."
elif [ "$numero" -lt 0 ]; then
    echo "El número es negativo."
else
    echo "El número es cero."
fi

Explicación

  1. Lectura del número: Usamos read para capturar el número introducido por el usuario.
  2. Condición if: "$numero" -gt 0 comprueba si el número es mayor que 0.
  3. Condición elif: "$numero" -lt 0 comprueba si el número es menor que 0.
  4. Condición else: Si ninguna de las condiciones anteriores se cumple, ejecuta el bloque else.

Operadores de Comparación

  • 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.


Ejemplo con Cadenas

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

Explicación de la Condición

  • [ -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).

Ejemplo Avanzado: Comprobación de Archivo

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


Explicación de la Condición

  • [ -e "$ruta" ]: Comprueba si el archivo o directorio existe.
  • [ -d "$ruta" ]: Comprueba si la ruta es un directorio.

Resumen

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.








Podría ser de Interés...

En Bash, los espacios son cruciales porque la shell utiliza los espacios en blanco para distinguir entre los diferentes elementos de un comando.
pasar argumentos desde línea de comandos en Bash
Variables en el lenguaje Bash en Linux
Introducción al lenguaje Bash en Linux


www.compostela21.com
diariocompostela21@gmail.com
20/07/2024