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ónelse
:if...then...else...fi
- Usando varias declaraciones
else
Cuando estás utilizando una sola declaraciónif
: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!