En bash scripting, las declaraciones condicionales ayudan a verificar si una condición específica es verdadera o falsa. Cuando la condición es verdadera, el script de shell ejecuta o ejecuta un bloque de código estipulado por el script. De lo contrario, el script omite la ejecución del código y salta a la siguiente instrucción condicional.
En bash scripting, las declaraciones condicionales incluyen si , if-else , if-elif-else y if anidado declaraciones. En esta guía, exploraremos cómo se utilizan estas declaraciones condicionales en la ejecución de scripts.
La sentencia if
En su forma más simple, la declaración 'si' toma la siguiente sintaxis.
if [[ conditional_statement ]] then command fi
La instrucción condicional if comienza con if palabra clave. Esto es seguido por una declaración condicional que luego es seguida por entonces palabra clave que precede al comando que se ejecutará si la declaración condicional es verdadera.
Entonces, si la condición_declaración es verdadero, entonces el comando es ejecutado. Si se evalúa como Falso, no sucede nada y el comando se ignora por completo y el script finaliza.
Tomemos un ejemplo de una secuencia de comandos bash que comprueba si una puntuación proporcionada es superior a 80.
$ vim check_score.sh
Copie y pegue el script.
#!/bin/bash echo -n "Please Enter a score: " read score if [[ $score -gt 80 ]] then echo "You have passed the exam!" fi
Tome nota cuidadosa de la sangría. Asigne permisos de ejecución utilizando chmod comando de la siguiente manera:
$ chmod +x check_score.sh
Luego ejecute el script.
$ ./check_score.sh
Si ingresa un valor mayor que 80, la declaración condicional se cumple y el mensaje de eco se imprime en la salida estándar
Sin embargo, si el valor proporcionado para la puntuación es inferior a 80, la declaración condicional se evalúa como falsa y no sucede nada. El script simplemente sale.
La sentencia if-else
En el script de shell anterior, solo se ejecutaba un comando después de que la declaración condicional se evaluara como True. Cuando la condición se evaluó como Falso, no se imprimió nada y el script simplemente salió. El if-else nos ayuda a ejecutar un comando en caso de que una condición se evalúe como falsa. El más Luego, la declaración es seguida por un comando o declaración si la condición devuelve Falso.
if [[ conditional_statement ]] then command else command fi
Modifiquemos el script de shell anterior y agreguemos un else declaración
#!/bin/bash echo -n "Please Enter a score: " read score if [[ $score -gt 80 ]] then echo "You have passed the exam!" else echo "You have failed the exam, please try again" fi
Aquí, el script de shell ejecuta el bloque de código después de else declaración solo si la primera condición se evalúa como falsa, es decir, si la puntuación proporcionada es inferior a 80.
En primera instancia, la puntuación proporcionada es 90 , que es mayor que 80 y, por lo tanto, se ejecuta la primera instrucción del script y se cierra el script.
En el segundo caso, sin embargo, se proporciona 70 y, dado que el valor es inferior a 80, el script omite la primera declaración, ya que se evalúa como falsa, y procede a ejecutar la segunda declaración después de else. declaración.
La sentencia if-elif-else
Hasta ahora, hemos verificado una condición que se evalúa como Verdadero o Falso. El elif (else -if ) se usa cuando hay varias declaraciones condicionales que tienen diferentes resultados. Si una condición se evalúa como Falsa, se procede a verificar si otras condiciones son Verdaderas. Aquí hay una sintaxis simple para la instrucción if-elif-else.
if [[ conditional_statement_1 ]] then command_1 elif [[ conditional_statement_2 ]] then command_2 else command_3 fi
Considere el siguiente guión
#!/bin/bash echo -n "Please Enter a score: " read score if [[ $score -ge 90 ]] then echo "Excellent!" elif [[ $score -ge 70 ]] then echo "Congratulations! Job well done!" elif [[ $score -ge 50 ]] then echo "Fairly done. There's more room for improvement!" else echo "Poorly done" fi
En este ejemplo, si la puntuación es mayor o igual a 90, imprime el mensaje ¡Excelente! Sin embargo, si la puntuación es inferior a 90 pero superior o igual a 70, imprime ¡Felicitaciones! ¡Trabajo bien hecho! .
Si la puntuación es inferior a 70, pero superior o igual a 50, se imprime el mensaje Bastante hecho. ¡Hay más margen de mejora!
Y, por último, si la puntuación es inferior a 50, se imprime Mal hecho.
Declaración if anidada
Una sentencia if anidada comprende una sentencia if dentro de otra sentencia if. cuando una condición se cumple, el script procede a verificar la siguiente condición. En la siguiente demostración, tomaremos los valores de entrada de 3 valores numéricos y comprobaremos cuál de ellos es el mayor.
#!/bin/bash read -p "Please enter the value of j:" j read -p "Please enter the value of k:" k read -p "Please enter the value of l:" l if [ $j -gt $k ] then if [ $j -gt $l ] then echo "j is greatest" else echo "l is greatest" fi else if [ $k -gt $l ] then echo "k is greatest" else echo "l is greatest" fi fi
Resumen
Esa fue una descripción general de alto nivel de las declaraciones condicionales en los scripts bash. Como ha visto, las declaraciones condicionales se utilizan para determinar el resultado de un script basado en expresiones condicionales establecidas. Con suerte, ahora tiene una base básica de declaraciones condicionales.