Cómo usar la declaración Case en Bash en Linux

27 feb 2021 2 min di lettura
Cómo usar la declaración Case en Bash en Linux
Indice dei contenuti

Introducción

Las declaraciones de casos de bash se utilizan generalmente para simplificar condicionales complejos cuando tiene varias opciones diferentes. El uso de la declaración de caso en lugar de las declaraciones if anidadas le ayudará a que sus scripts de bash sean más legibles y más fáciles de administrar.

La instrucción case Bash tiene un concepto similar con la instrucción switch Javascript o C. La principal diferencia es que, a diferencia de la instrucción switch C, la instrucción Case Bash no continúa buscando una coincidencia de patrón una vez que se encuentra y ejecuta.

En este tutorial, cubriremos los conceptos básicos de las declaraciones de Case Bash y le mostraremos cómo usarlos en scripts de shell.

Sintaxis de la declaración de caso

La declaración Case Bash tiene la siguiente forma:

case EXPRESSION in

 PATTERN_1)
 STATEMENTS
 ;;

 PATTERN_2)
 STATEMENTS
 ;;

 PATTERN_N)
 STATEMENTS
 ;;

 *)
 STATEMENTS
 ;;
 esac
  • Cada instrucción Case comienza con la palabra clave case seguida de la expresión homes y de la palabra clave in. La declaración termina con la palabra clave esac.
  • Puede utilizar varias condiciones separadas por el |. El ) finaliza una lista de patrones.
  • Un patrón puede tenercaracteres especiales.
  • Un patrón y los comandos asociados se conocen como cláusulas.
  • Cada cláusula debe resolverse con ;;.
  • Se ejecutan los comandos correspondientes al primer patrón que coincide con la expresión.
  • Es una práctica común utilizar el símbolo de asterisco comodín * como patrón final para definir el caso predeterminado. Este modelo siempre coincidirá.
  • Si no se encuentra ninguna coincidencia, el estado de devolución es cero. De lo contrario, el estado de retorno es el estado de salida de los comandos ejecutados.

Ejemplo de caso

A continuación, se muestra un ejemplo que utiliza la declaración Case 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 guión le pedirá que ingrese un país. Por ejemplo, si escribe "Lituania", coincidirá con el primer patrón y echo en esa cláusula.

El script imprimirá la siguiente salida:

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, asumimos que en Argentina el script ejecutará el comando echo 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, debería tener un buen conocimiento de cómo escribir declaraciones de casos de bash. 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 usan sentencias Case para iniciar, detener o reiniciar servicios.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.