El case
de bash La declaración generalmente se usa para simplificar condicionales complejos cuando tiene varias opciones diferentes. Usando el case
declaración en lugar de anidado if
declaraciones lo ayudarán a hacer que sus scripts de bash sean más legibles y fáciles de mantener.
El case
de Bash declaración tiene un concepto similar con Javascript o C switch
declaración. La principal diferencia es que, a diferencia del switch
de C declaración, el case
de Bash la declaración no continúa buscando una coincidencia de patrón una vez que ha encontrado una y ha ejecutado declaraciones asociadas con ese patrón.
En este tutorial, cubriremos los conceptos básicos del case
de Bash instrucción y mostrarle cómo usarla en sus scripts de shell.
case
Sintaxis de declaración #
El case
de Bash declaración toma la siguiente forma:
case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
- Cada
case
La declaración comienza concase
palabra clave, seguida de la expresión de mayúsculas y minúsculas yin
palabra clave. La declaración termina con elesac
palabra clave. - Puede usar múltiples patrones separados por el
|
operador. El)
operador termina una lista de patrones. - Un patrón puede tener caracteres especiales.
- Un patrón y sus comandos asociados se conocen como una cláusula.
- Cada cláusula debe terminar con
;;
. - Se ejecutan los comandos correspondientes al primer patrón que coincide con la expresión.
- Es una práctica común usar el símbolo de asterisco comodín (
*
) como patrón final para definir el caso predeterminado. Este patrón siempre coincidirá. - Si no coincide ningún patrón, el estado de retorno es cero. De lo contrario, el estado de retorno es el estado de salida de los comandos ejecutados.
Ejemplo de declaración de caso #
Aquí hay un ejemplo usando el case
declaración en un script bash que imprimirá el idioma oficial de un país determinado:
#!/bin/bash
echo -n "Enter the name of a country: "
read COUNTRY
echo -n "The official language of $COUNTRY is "
case $COUNTRY in
Lithuania)
echo -n "Lithuanian"
;;
Romania | Moldova)
echo -n "Romanian"
;;
Italy | "San Marino" | Switzerland | "Vatican City")
echo -n "Italian"
;;
*)
echo -n "unknown"
;;
esac
Guarde el script personalizado como un archivo y ejecútelo desde la línea de comandos.
bash languages.sh
El script le pedirá que ingrese un país. Por ejemplo, si escribe "Lituania", coincidirá con el primer patrón y el echo
se ejecutará el comando en esa cláusula.
El script imprimirá el siguiente resultado:
Enter the name of a country: Lithuania
The official language of Lithuania is Lithuanian
Si ingresa un país que no coincide con ningún otro patrón excepto el símbolo de asterisco comodín predeterminado, digamos Argentina, el script ejecutará el echo
comando dentro de la cláusula predeterminada.
Enter the name of a country: Argentina
The official language of Argentina is unknown
Conclusión #
A estas alturas ya debería tener una buena comprensión de cómo escribir bash case
declaraciones. A menudo se utilizan para pasar parámetros a un script de shell desde la línea de comandos. Por ejemplo, los scripts de inicio están usando case
instrucciones para iniciar, detener o reiniciar servicios.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.