El Manual de BASH Scripting Básico para Principiantes/El clon (Case-Esac)
Sentencia Case-Esac
editarEl conjunto de palabras Case
... Esac
conforman un selector en función de un resultado.
Ejemplo
editarPor ejemplo, supongamos que tenemos una variable X la cual puede tomar un valor numérico leído desde teclado:
read x
case $x in
1)
echo "uno"
;;
2)
echo "dos"
;;
*)
echo "no sé qué numero es"
;;
esac
Explicación del código
editarread espera un valor desde el teclado para X , 'ingrese un numero'; Case llama la variable y según su valor muestra un mensaje en pantalla, si el numero es distinto a 1 o 2 se ejecuta la linea '*' y esac es la instrucción de cierre.
Esto también es aplicable a variables alfanuméricas, aquí también presten atención que es sensible a mayúsculas y minúsculas.
Por ejemplo:
editar read opcion
case $opcion in
s|S)
echo "pulso la opción SI"
;;
n|N)
echo "pulso la opción NO"
;;
*)
echo "desconozco esa opción"
;;
esac
Explicación del ejemplo
editarEn este caso el programa reconoce las mayúsculas y las minúsculas, el (símbolo barra vertical) '|' es una instrucción 'o' (OR) en donde las opciones son 's' ó 'S', lo que determinan si el usuario tecleó alguna de estas letras se ejecuta tal tarea, en este caso imprime en la pantalla la leyenda pulso la opción SI
.
Este mecanismo es muy útil a la hora de toma de decisiones, por menú o de forma autónoma para tener un medio de control.
Consejos útiles
editarUn par de tips para esto:
- Las estructura
case-esac
puede estar contenida dentro de otro, por ejemplo de unif
ó unwhile
. - En estos ejemplos la ejecución de tarea es de una línea pero se pueden poner varias lineas por tareas de decisión o bien llamar un script externo.