En este tema, discutiremos los conceptos básicos de las declaraciones de casos y cómo usarlas en scripts Bash.
La declaración de caso Bash es la forma más simple de IF-THEN-ELSE con muchos elementos ELIF. El uso de la declaración case hace que nuestro script bash sea más legible y fácil de mantener. Generalmente se aplican para simplificar las condiciones complejas que tienen múltiples opciones diferentes.
La declaración de caso de Bash sigue una lógica similar a la declaración de cambio de Javascript o C. Hay una ligera diferencia, como sigue:
- La declaración de caso de Bash toma un valor una vez y lo prueba varias veces. Deja de buscar un patrón una vez que lo encuentra y ejecuta la declaración vinculada a él, lo cual es casi lo opuesto en el caso de la declaración de cambio de C.
Sintaxis de declaración de caso
La sintaxis de la declaración de caso de bash se proporciona a continuación:
case expression in pattern_1) statements ;; pattern_2) statements ;; pattern_3|pattern_4|pattern_5) statements ;; pattern-n) statements ;; *) statements ;; esac
Hay algunos puntos clave de las declaraciones de casos de bash:
- Cada declaración de caso en bash comienza con la palabra clave 'case', seguida de la expresión case y la palabra clave 'in'. La declaración del caso se cierra con la palabra clave 'esac'.
- Podemos aplicar múltiples patrones separados por | operador. El operador ) indica la terminación de una lista de patrones.
- Un patrón que contiene las declaraciones se denomina cláusula y debe terminar con doble punto y coma (;;).
- Se utiliza un símbolo de asterisco (*) como patrón final para definir el caso predeterminado. Se utiliza como caso predeterminado cuando se utiliza como último caso.
Cómo funciona
En primer lugar, la declaración del caso expande la expresión e intenta hacer coincidir cada uno de los patrones incluidos. Cuando encuentra una coincidencia, todas las declaraciones vinculadas se ejecutan hasta el doble punto y coma (;;). Después de la primera coincidencia, el caso termina con el estado de salida de la última declaración ejecutada.
Si no hay ningún patrón coincidente, el estado de salida del caso es cero. De lo contrario, el estado de devolución es el estado de salida de las declaraciones ejecutadas.
Si se utiliza el patrón de asterisco predeterminado, se ejecutará en caso de que no coincida ningún patrón.
Intentemos comprender este mecanismo con la ayuda de algunos ejemplos:
Ejemplo 1
En este ejemplo, hemos definido un escenario simple para demostrar el uso de la declaración de caso.
Guión de bash
#!/bin/bash echo 'Do you know Java Programming?' read -p 'Yes/No? :' Answer case $Answer in Yes|yes|y|Y) echo 'That's amazing.' echo ;; No|no|N|n) echo 'It's easy. Let's start learning from javatpoint.' ;; esac
Producción
Ejemplo 2
En este ejemplo, hemos definido un escenario combinado donde también hay un caso predeterminado cuando no se encuentra ningún caso coincidente anterior.
cómo recuperar aplicaciones ocultas
Guión de bash
#!/bin/bash echo 'Which Operating System are you using?' echo 'Windows, Android, Chrome, Linux, Others?' read -p 'Type your OS Name:' OS case $OS in Windows|windows) echo 'That's common. You should try something new.' echo ;; Android|android) echo 'This is my favorite. It has lots of applications.' echo ;; Chrome|chrome) echo 'Cool!!! It's for pro users. Amazing Choice.' echo ;; Linux|linux) echo 'You might be serious about security!!' echo ;; *) echo 'Sounds interesting. I will try that.' echo ;; esac
Producción
Hemos ejecutado el script con tres entradas diferentes, consulte el resultado a continuación: