Original article: Bash If Statement – Linux Shell If-Else Syntax Example

Cuando se programa, es posible que necesites tomar decisiones basadas en ciertas condiciones. Las condiciones son expresiones que se evalúan como una expresión booleana (true o false).

Las sentencias que ayudan a ejecutar diferentes ramas de código basándose en ciertas condiciones se conocen como sentencias condicionales.

if...else es una de las sentencias condicionales utilizadas más comúnmente. Al igual que otros lenguajes de programación, la programación de Bash también soporta sentencias if...else. Y lo estudiaremos en detalle en esta publicación.

Sintaxis de las declaraciones if

Puedes utilizar las declaraciones if de varias formas.  La estructura genérica de las declaraciones  if es la siguiente:

  • Usando solo una declaración if:   if...then...fi
  • Usando una declaración if con una declaración else:   if...then...else...fi
  • Usando varias declaraciones else Cuando estás utilizando una sola declaración if: if..elif..else..fi

Cómo utilizar la declaración if

Cuando estás utilizando una sola declaración if , la sintaxis es la siguiente:

if [ condition ]
then
	statement
fi
Ten en cuenta que los espacios forman parte de la sintaxis y no deben ser eliminados

Veamos un ejemplo donde estamos comparando dos números para ver si el primer número es el más pequeño.

#! /bin/sh

a=5
b=30

if [ $a -lt $b ]
then
        echo "a is less than b"
fi

Si ejecutas el fragmento anterior, la condición  if [ $a -lt $b ] se evalúa como True, y se ejecuta la declaración dentro de la declaración if.

Resultado:

a is less than b

¿Cómo utilizar la declaración if .. else?

Cuando estás utilizando una declaración if y quieres añadir otra condición, la sintaxis es la siguiente:

if [ condition ]
then
	statement
else
	do this by default
fi

Veamos un ejemplo en el que queramos encontrar si el primer número es mayor o menor que el segundo. Aquí,  if [ $a -lt $b ] se evalúa como false, lo que provoca que se ejecute la parte else del código.

#! /bin/sh

a=99
b=45

if [ $a -lt $b ]
then
        echo "a is less than b"
else
        echo "a is greater than b"
fi

Resultado:

a is greater than b

¿Cómo utilizar las declaraciones if..elif..else?

Digamos que quieres añadir condiciones y comparaciones adicionales para hacer que el código sea dinámico. En este caso, la sintaxis se vería así:

if [ condition ]
then
	statement
elif [ condition ] 
then
	statement 
else
	do this by default
fi

Para crear comparaciones significativas, podemos usar los operadores lógicos AND -a y OR -o.

En este ejemplo, vamos a determinar el tipo de triángulo utilizando las siguientes condiciones:

  • Escaleno:  Un triángulo en el que cada lado tiene una longitud diferente.
  • Isósceles: Un triángulo en el que 2 de sus lados tienen la misma longitud.
  • Equilátero: Un triángulo en el que todos los lados tienen la misma longitud.
read a
read b
read c

if [ $a == $b -a $b == $c -a $a == $c ]
then
echo ESCALENO

elif [ $a == $b -o $b == $c -o $a == $c ]
then
echo ISOSCELES
else
echo EQUILATERO

fi

En el ejemplo anterior, el script le pediría al usuario que ingrese los tres lados del triángulo. Luego, compararía los lados y decidiría el tipo de triángulo.

3
4
5
SCALENE

Conclusión

Puedes fácilmente dividir tu código en ramas basándose en condiciones como if..else y hacer el código más dinámico. En este tutorial, aprendiste la sintaxis de if...else junto con algunos ejemplos.

Espero que hayas encontrado este tutorial útil.

Comenta que aprendiste de este tutorial. ¡Házmelo saber en  Twitter!