Las declaraciones if-else en bash scripting son similares a cualquier otro lenguaje de programación; es un método para que un programa tome decisiones.
En if-else
sentencias, la ejecución de un bloque de sentencia se decide en base al resultado del if
condición.
Sintaxis de declaración Bash If-Else
La sintaxis del if-else
declaración en bash es:
if [condition]
then
//if block code
else
// else block code
fi
Si la condición se evalúa como true
, el if
se ejecuta el código de bloque, y si la condición se evalúa como false
luego el else
se ejecuta el código de bloque.
La instrucción else y el bloque de código else son opcionales.
Tenemos que terminar el if
declaración con el fi
palabra clave.
Comparaciones condicionales
La expresión utilizada por la construcción condicional debe evaluarse como true
o false
. La expresión puede ser una sola cadena o variable.
- menor que - denotado por:
$a -lt $b
o$a < $b
- mayor que - denotado por:
$a -gt $b
o$a > $b
- menor o igual que - denotado por:
$a -le $b
o$a <= $b
- mayor o igual que - denotado por:
$a -ge $b
o$a >= $b
- igual a - denotado por:
$a -eq $b
o$a == $b
- no igual a - denotado por:
$a -ne $b
o$a != $b
Operadores lógicos
La expresión dentro del if
declaración también puede ser una combinación lógica de múltiples comparaciones.
Los operadores lógicos son:
- lógico y - denotado por
$a AND $b
o$a && $b
evalúa atrue
cuando ambas variables o declaraciones son verdaderas. - lógico o - denotado por
$a OR $b
o$a || $b
evalúa atrue
cuando una de las variables o declaraciones es verdadera.
Por ejemplo:
#!/bin/bash
first_name="John"
last_name="Doe"
if [[ $first_name = "John" && $last_name = "Doe" ]]
then
echo 'hello John Doe'
fi
Bash si ejemplo
El if
declaración es sólo una declaración condicional simple. Si la condición dentro del if[]
evalúa a true
luego el if
se ejecuta el bloque de código.
Ejemplo:
#!/bin/bash
read -p "Enter a number: " mynumber
if [ $mynumber -gt 10 ]
then
echo "The number you entered is greater than 10"
fi
Nota:En el ejemplo anterior, si ingresamos un número menor que 10, entonces no se imprime nada. Ejemplo de Bash if-else
Cuando el resultado del if
la condición es false
luego el código en el else
se ejecuta el bloque, siempre que haya uno.
Por ejemplo:
#!/bin/bash
read -p "Enter a number: " mynumber
if [ $mynumber -gt 10 ]
then
echo "The number you entered is greater than 10"
else
echo "The number you entered is less than 10"
fi
Ejemplo de Bash if-elif-else
El elif
(si no) se usa cuando hay múltiples if
condiciones.
Por ejemplo:
#!/bin/bash
read -p "Enter your exam grade: " grade
if [ $grade -ge 80 ]
then
echo "You got A"
elif [ $grade -ge 70 ]
then
echo "You got B"
elif [ $grade -ge 60 ]
then
echo "You got C"
else
echo "Fail"
fi
Bash anidado si ejemplo
También podemos tener anidado if
declaraciones.
Por ejemplo:
#!/bin/bash
read -p "Enter value of a :" a
read -p "Enter value of b :" b
read -p "Enter value of c :" c
if [ $a -gt $b ]
then
if [ $a -gt $c ]
then
echo "a is greatest"
else
echo "c is greatest"
fi
else
if [ $b -gt $c ]
then
echo "b is greatest"
else
echo "c is greatest"
fi
fi