Las sentencias condicionales son fundamentales en cualquier lenguaje de programación, y Bash no es la excepción. Estas sentencias permiten que tu script tome decisiones basadas en ciertas condiciones, lo que es esencial para crear scripts dinámicos y útiles.
Conceptos Clave
- Sentencia
if
: Evalúa una condición y ejecuta un bloque de código si la condición es verdadera. - Sentencia
if-else
: Evalúa una condición y ejecuta un bloque de código si la condición es verdadera, y otro bloque si la condición es falsa. - Sentencia
if-elif-else
: Permite evaluar múltiples condiciones en secuencia. - Sentencia
case
: Similar aswitch
en otros lenguajes, permite evaluar una variable contra múltiples patrones.
Sentencia if
La estructura básica de una sentencia if
en Bash es la siguiente:
Ejemplo
En este ejemplo, el script imprimirá "El número es mayor que 5" porque la condición $num -gt 5
(10 es mayor que 5) es verdadera.
Sentencia if-else
La estructura básica de una sentencia if-else
es:
if [ condición ]; then # Bloque de código si la condición es verdadera else # Bloque de código si la condición es falsa fi
Ejemplo
#!/bin/bash num=3 if [ $num -gt 5 ]; then echo "El número es mayor que 5" else echo "El número no es mayor que 5" fi
En este caso, el script imprimirá "El número no es mayor que 5" porque la condición $num -gt 5
(3 no es mayor que 5) es falsa.
Sentencia if-elif-else
La estructura básica de una sentencia if-elif-else
es:
if [ condición1 ]; then # Bloque de código si condición1 es verdadera elif [ condición2 ]; then # Bloque de código si condición2 es verdadera else # Bloque de código si ninguna condición es verdadera fi
Ejemplo
#!/bin/bash num=7 if [ $num -gt 10 ]; then echo "El número es mayor que 10" elif [ $num -gt 5 ]; then echo "El número es mayor que 5 pero menor o igual a 10" else echo "El número es 5 o menor" fi
En este ejemplo, el script imprimirá "El número es mayor que 5 pero menor o igual a 10" porque la condición $num -gt 5
(7 es mayor que 5) es verdadera.
Sentencia case
La estructura básica de una sentencia case
es:
case variable in patrón1) # Bloque de código si variable coincide con patrón1 ;; patrón2) # Bloque de código si variable coincide con patrón2 ;; *) # Bloque de código si variable no coincide con ningún patrón ;; esac
Ejemplo
#!/bin/bash day="lunes" case $day in "lunes") echo "Hoy es lunes" ;; "martes") echo "Hoy es martes" ;; *) echo "No es lunes ni martes" ;; esac
En este ejemplo, el script imprimirá "Hoy es lunes" porque la variable day
coincide con el patrón "lunes"
.
Ejercicios Prácticos
Ejercicio 1: Verificar si un Número es Par o Impar
Instrucciones: Escribe un script que verifique si un número dado es par o impar.
Solución:
#!/bin/bash read -p "Introduce un número: " num if [ $((num % 2)) -eq 0 ]; then echo "El número $num es par" else echo "El número $num es impar" fi
Ejercicio 2: Clasificar una Calificación
Instrucciones: Escribe un script que clasifique una calificación numérica (0-100) en letras (A, B, C, D, F).
Solución:
#!/bin/bash read -p "Introduce una calificación (0-100): " grade if [ $grade -ge 90 ]; then echo "Calificación: A" elif [ $grade -ge 80 ]; then echo "Calificación: B" elif [ $grade -ge 70 ]; then echo "Calificación: C" elif [ $grade -ge 60 ]; then echo "Calificación: D" else echo "Calificación: F" fi
Resumen
En esta sección, hemos aprendido sobre las sentencias condicionales en Bash, incluyendo if
, if-else
, if-elif-else
y case
. Estas estructuras permiten que tus scripts tomen decisiones basadas en condiciones, lo que es esencial para crear scripts dinámicos y útiles. Asegúrate de practicar con los ejercicios proporcionados para reforzar tu comprensión de estos conceptos. En el próximo módulo, exploraremos los bucles en Bash, que te permitirán ejecutar bloques de código repetidamente bajo ciertas condiciones.
Curso de Programación en Bash
Módulo 1: Introducción a Bash
- ¿Qué es Bash?
- Configurando tu Entorno
- Navegación Básica en la Línea de Comandos
- Entendiendo el Shell
Módulo 2: Comandos Básicos de Bash
- Operaciones con Archivos y Directorios
- Comandos de Procesamiento de Texto
- Permisos y Propiedad de Archivos
- Redirección y Tuberías
Módulo 3: Fundamentos de Scripting
Módulo 4: Scripting Intermedio
Módulo 5: Técnicas Avanzadas de Scripting
- Operaciones Avanzadas con Archivos
- Gestión de Procesos
- Manejo de Errores y Depuración
- Expresiones Regulares
Módulo 6: Trabajando con Herramientas Externas
Módulo 7: Automatización y Programación
Módulo 8: Mejores Prácticas y Optimización
- Escribiendo Código Legible
- Optimizando Scripts en Bash
- Consideraciones de Seguridad
- Control de Versiones con Git