Las declaraciones condicionales de Bash realizan diferentes cálculos o acciones dependiendo de si una condición booleana especificada por el programador se evalúa como verdadera o falsa. Estas declaraciones se utilizan para ejecutar diferentes partes de su programa de shell dependiendo de si ciertas condiciones son verdaderas. La capacidad de bifurcarse hace que los scripts de shell sean poderosos.
En Bash, tenemos las siguientes declaraciones condicionales:
- sentencia if..then..fi (Si simple)
- if..then..else..fi sentencia (If-Else)
- if..elif..else..fi declaración (Else If escalera)
- if..then..else..if..then..fi..fi..(Anidado si)
Estas son similares a las declaraciones awk if que discutimos anteriormente.
1. Declaración Bash If..then..fi
if [ conditional expression ] then statement1 statement2 . fi
Esta declaración if también se llama declaración if simple. Si la expresión condicional dada es verdadera, ingresa y ejecuta las declaraciones encerradas entre las palabras clave "entonces" y "fi". Si la expresión dada devuelve cero, entonces se ejecuta la lista de sentencias consecuentes.
si entonces fi ejemplo:
#!/bin/bash count=100 if [ $count -eq 100 ] then echo "Count is 100" fi
2. Bash If..then..else..fi declaración
If [ conditional expression ] then statement1 statement2 . else statement3 statement4 . fi
Si la expresión condicional es verdadera, ejecuta la declaración 1 y 2. Si la expresión condicional devuelve cero, salta a la parte else y ejecuta la declaración 3 y 4. Después de la ejecución de la parte if/else, la ejecución se reanuda con las declaraciones correspondientes.
if then else fi ejemplo:
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" else echo "Count is not 100" fi
3. Bash Si..elif..else..fi
If [ conditional expression1 ] then statement1 statement2 . elif [ conditional expression2 ] then statement3 statement4 . . . else statement5 fi
Puede usar esto si .. elif .. si , si desea seleccionar uno de los muchos bloques de código para ejecutar. Comprueba la expresión 1, si es verdadera ejecuta la declaración 1,2. Si la expresión1 es falsa, verifica la expresión2, y si toda la expresión es falsa, ingresa al bloque else y ejecuta las declaraciones en el bloque else.
si entonces elif entonces si no fi ejemplo:
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" elif [ $count -gt 100 ] then echo "Count is greater than 100" else echo "Count is less than 100" fi
4. Bash Si... entonces... más... si... entonces... fi... fi...
If [ conditional expression1 ] then statement1 statement2 . else if [ conditional expression2 ] then statement3 . fi fi
Las sentencias if y else podrían estar anidadas en bash. La palabra clave "fi" indica el final de la instrucción if interna y todas las declaraciones if deben terminar con la palabra clave "fi".
El ejemplo "if then elif then else fi" mencionado anteriormente se puede convertir al if anidado como se muestra a continuación.
#!/bin/bash count=99 if [ $count -eq 100 ] then echo "Count is 100" else if [ $count -gt 100 ] then echo "Count is greater than 100" else echo "Count is less than 100" fi fi
En nuestro próximo artículo, discutiremos cómo usar las expresiones condicionales de Bash con ejemplos prácticos.
Lecturas recomendadas
Bash 101 Hacks, por Ramesh Natarajan . Paso la mayor parte de mi tiempo en el entorno Linux. Entonces, naturalmente, soy un gran admirador de la línea de comandos de Bash y las secuencias de comandos de Shell. Hace 15 años, cuando estaba trabajando en diferentes versiones de *nix, solía escribir mucho código en C shell y Korn shell. Años más tarde, cuando comencé a trabajar en Linux como administrador del sistema, prácticamente automaticé todas las tareas posibles utilizando scripts de shell Bash. Basado en mi experiencia con Bash, he escrito el libro electrónico Bash 101 Hacks que contiene 101 ejemplos prácticos tanto en la línea de comandos de Bash como en las secuencias de comandos de shell. Si ha estado pensando en dominar Bash, hágase un favor y lea este libro, que lo ayudará a tomar el control de su línea de comandos y secuencias de comandos de shell de Bash.