Cómo usar la declaración if...else en Bash
-
La declaración
ifen Bash -
if ... elseDeclaración en Bash -
if...elif...elseDeclaración en Bash -
Anidado
ifdeclaració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