Cómo usar la declaración if...else en Bash
-
La declaración
if
en Bash -
if ... else
Declaración en Bash -
if...elif...else
Declaración en Bash -
Anidado
if
declaración en Bash
Las declaraciones condicionales son frecuentes para la toma de decisiones en casi todos los lenguajes de programación. Permiten la ejecución de una o varias declaraciones sólo si se satisface una condición particular. if ... else
se usa como sentencia condicional en la mayoría de los lenguajes de programación. En Bash también tenemos if
, if...elif...else
, if ... else
y declaraciones anidadas if
como declaraciones condicionales.
La declaración if
en Bash
Sintaxis de if
Declaración
if Test-Expression
then
Statements
fi
En el ejemplo anterior, si la Test-Expression
es True
, las Statements
se ejecutan. La palabra clave fi
se usa para terminar la declaración if
.
Si la Test-Expression
no es True
, ninguna de las Statements
se ejecuta.
Para hacer que nuestro código se vea más legible y organizado, podemos usar una indentación de 4 espacios o de 2 espacios.
Ejemplo: if
la declaración en Bash
echo -n "Enter numnber : "
read n
rem=$(( $n % 2 ))
if [ $rem -eq 0 ]
then
echo "$n is even number"
fi
Resultado:
Enter numnber : 4
4 is even number
Acepta un número del usuario y da la salida sólo si el número es par.
Si el número es par, el resto es cero cuando el número se divide entre dos. Por lo tanto, la expresión de prueba es True
para que se ejecute la declaración echo
.
if ... else
Declaración en Bash
Sintaxis de la declaración if ... else
if Test-Expression
then
Statements-1
else
Statements-2
fi
En este ejemplo, si la Test-Expression
es True
, se ejecuta la Statements-1
; de lo contrario, se ejecuta la Statements-2
. Para terminar la declaración if ... else
, se usa la palabra clave fi
.
Ejemplo: if...else
Declaración en Bash
echo -n "Enter numnber : "
read n
rem=$(( $n % 2 ))
if [ $rem -eq 0 ]
then
echo "$n is even number"
else
echo "$n is odd number"
fi
Resultado:
Enter numnber : 5
4 is odd number
Acepta un número del usuario y da salida dependiendo de si el número de entrada es exactamente divisible por 2
o no.
Si el número es par, el resto es cero cuando el número se divide entre dos; por lo tanto, la expresión de prueba es True
y la declaración echo
“$n es un número par” se ejecuta.
Si el número es impar, el resto no es cero; por lo tanto, la expresión de prueba es False
, y la frase echo "$n is odd number"
se ejecuta.
if...elif...else
Declaración en Bash
Sintaxis de la declaración if...elif...else
if Test-Expression-1
then
Statements-1
elif Test-Expression-2
then
Statements-2
else
Statements-3
fi
Si la Test-Expression-1
es True
, la Statements-1
es ejecutada. Si la Test-Expression-2
es True
, la Statements-2
se ejecuta.
Si ninguna de las expresiones de prueba es True
, se ejecuta la Statements-3
.
Podemos tener tantas declaraciones elif
como queramos, y la declaración else
es opcional.
Ejemplo: if...elif...else
Declaración en Bash
echo -n "Enter the value of a: "
read a
echo -n "Enter the value of b: "
read b
if [ $a -lt $b ]
then
echo "a is less than b"
elif [ $a -gt $b ]
then
echo "a is greater than b"
else
echo "a is equal to b"
fi
Resultado:
Enter the value of a: 4
Enter the value of b: 4
a is equal to b
Acepta dos números como entrada del usuario e imprime el resultado en base a cuál de las expresiones de prueba es verdadera.
Si a<b
, el programa imprime a is less than b
.
Si a>b
, el programa imprime a is greater than b
.
Si ninguna de las declaraciones condicionales es verdadera, el programa imprime a is equal to b
.
Anidado if
declaración en Bash
Cuando una declaración if
se coloca dentro de otra declaración if
, se llama una declaración if
anidada.
echo -n "Enter numnber : "
read a
rem=$(( $a % 2 ))
if [ $rem -eq 0 ]
then
if [ $a -gt 10 ]
then
echo "$a is even number and greater than 10."
else
echo "$a is even number and less than 10."
fi
else
echo "$a is odd number"
fi
Resultado:
Enter numnber : 46
46 is even number and greater than 10.
Demuestra el uso de la declaración if
anidada. Si el número es exactamente divisible entre 2
y mayor que 10
, echo "$a is even number and greater than 10."
Se ejecuta la declaración.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn