La sentencia case y la coincidencia de patrones
Cree bifurcaciones claras para muchos valores. Aprenda la sentencia case, los patrones glob, las coincidencias con varios patrones y por qué es mejor que encadenar muchos if-elif.
La sentencia case y la coincidencia de patrones es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Por qué case?
Cuando una variable puede adoptar muchos valores, una cadena larga de if/elif/elif resulta poco clara. La instrucción case compara un valor con patrones y es mucho más legible.
Sintaxis básica
Un bloque case compara un valor con patrones, cada uno terminado en ) y con un cuerpo que finaliza en ;;. El bloque completo termina con esac.
case "$fruit" in
apple) echo "red";;
banana) echo "yellow";;
esacEl caso predeterminado
El patrón *) coincide con cualquier elemento y actúa como valor predeterminado general, igual que else.
case "$cmd" in
start) echo "starting";;
stop) echo "stopping";;
*) echo "unknown command";;
esacComparar varios patrones
Use | para comparar varios patrones en una misma rama.
case "$ans" in
y|Y|yes) echo "Confirmed";;
n|N|no) echo "Cancelled";;
esacPatrones glob
Los patrones utilizan globbing del shell, no expresiones regulares: * coincide con cualquier cadena, ? con un carácter individual y [...] con una clase de caracteres.
case "$file" in
*.txt) echo "text file";;
*.jpg|*.png) echo "image";;
esacIntervalos de caracteres
Los patrones entre corchetes comparan intervalos, lo que resulta práctico para agrupar por la primera letra o dígito.
case "$ch" in
[a-z]) echo "lowercase";;
[0-9]) echo "digit";;
esacUn menú sencillo
case resulta especialmente útil en scripts controlados por menús, donde el usuario elige una opción.
read -p "Choice: " opt
case "$opt" in
1) backup;;
2) restore;;
*) echo "Invalid";;
esaccase frente a if
Use if para condiciones booleanas complejas (intervalos, comparaciones o varias variables). Use case cuando la ramificación dependa del valor o patrón de una sola variable.
Entrecomillar el valor
Entrecomille el valor que se compara ("$var") para gestionar de forma segura los valores vacíos o que contienen espacios.
case "$input" in
"") echo "empty";;
*) echo "got: $input";;
esacContinuación con ;;&
Bash admite ;;& para seguir comprobando los patrones posteriores después de una coincidencia, lo que permite activar varias ramas.
case "$f" in
*.tar) echo "tar";;&
*.gz) echo "gzip";;
esacDistribución de argumentos
Un uso habitual en situaciones reales es distribuir la ejecución según el primer argumento del script para implementar subcomandos, como en una herramienta CLI.
case "$1" in
init) do_init;;
build) do_build;;
*) echo "usage: $0 {init|build}";;
esacComprobación rápida
Compruebe su comprensión.
Repaso
Ha aprendido la instrucción case: comparar un valor con patrones glob, terminar las ramas con ;;, combinar patrones con |, usar *) como valor predeterminado y preferir case a largas cadenas de if-elif para distribuir de forma clara según valores y argumentos.
Preguntas frecuentes
¿La lección «La sentencia case y la coincidencia de patrones» es gratis?
Sí — el texto completo de «La sentencia case y la coincidencia de patrones» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «La sentencia case y la coincidencia de patrones»?
Cree bifurcaciones claras para muchos valores. Aprenda la sentencia case, los patrones glob, las coincidencias con varios patrones y por qué es mejor que encadenar muchos if-elif. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «La sentencia case y la coincidencia de patrones»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Estructuras de bucle (for, while)
- Funciones en scripts de Bash
- Argumentos y opciones de scripts ($@, $#, getopts)
- La sentencia case y la coincidencia de patrones