Regla mnemotécnica
case
: En caso de en ingles in case.
Estructura del Comando Case
El comando case
es una forma de ejecución condicional que nos permite ejecutar unos u otros comandos según el valor de una variable. No incluye ninguna funcionalidad nueva que no pueda ser realizada con el uso del comando if
, pero en ciertos casos la sintaxis es más sencilla, intuitiva y directa. Con el comando case
se lee una variable, si su valor coincide con alguno esperado se ejecutan los comandos asociados a ese valor. La sintaxis es como indicamos a continuación:
case $variable in valor-1) comandos ;; valor-2) comandos ;; ... *) comandos esac
donde $varible
es la variable que leemos, si tiene el valor-1
ejecuta los comandos que se encuentran a continuación hasta que se encuentran ";;"
que indica el fin de los comandos asociados a ese valor de la variable. Se pueden definir cuantos posibilidades sean necesarias y como última opción podemos añadir el comodín "*)"
y si la ejecución llega hasta este punto ejecutará los comandos para este caso. Si no existe "*)"
y la variable no toma ninguno de los valores predefinidos evidentemente no se ejecuta nada. Veamos un ejemplo:
nombre=gabriel case $nombre in txomin) echo "No soy Gabriel" echo "Soy Txomin" ;; gabriel) echo "Soy Gabriel" ;; *) echo "No soy Txomin" echo "Ni tampoco soy Gabriel" esac
Evidentemente la ejecución de este script dará como salida "Soy Gabriel"
y es fácil ver que será lo que hará dependiendo del valor que le asignemos a la variable $nombre
. También podemos usar el comando booleano “or” (o) con el símbolo “|” para indicar varios posibles valores asociados a los mismos comandos.
nombre=gabriel case $nombre in txomin|gabriel) echo "Soy Gabriel o Txomin" ;; *) echo "No soy Txomin" echo "Ni tampoco soy Gabriel" esac
Comentarios