Contenido del curso
Programación Shell Básica
Script Interactivos
Condicionales
Iteración
Archivos
Empaquetamiento
Funciones
Cierre del curso
Expresiones Condicionales
Resumen
Domina las expresiones condicionales en Bash con un enfoque práctico y claro. Aquí verás cómo capturar datos con read -p, construir decisiones con if, else y fi, y aplicar operadores para números, cadenas y verificación de rutas. Todo con ejemplos reales y recomendaciones puntuales para evitar errores.
¿Qué preparar y cómo capturar datos con read -p?
Antes de validar, define variables y solicita la información al usuario. Se usan tres variables: un valor numérico para la edad, una cadena para el país y un path para el archivo o directorio. Para títulos en pantalla, se usa echo -e y así habilitar caracteres especiales como saltos de línea.
- Usa variables: edad=0, pais="", path_archivo="".
- Captura datos con read -p y guarda en cada variable.
- Cuida los espacios en los corchetes de las pruebas: evita errores sutiles.
# Variables iniciales edad=0 pais="" path_archivo="" # Capturas de datos read -p "Ingrese su edad: " edad read -p "Ingrese su país: " pais read -p "Ingrese el path de su archivo o la dirección: " path_archivo
¿Cómo validar números con if en bash?
Para números, se emplean los operadores de comparación del test de Bash. Con ellos se construyen decisiones simples o múltiples condiciones, tanto en sentencias de decisión como en iteración cuando haga falta.
¿Qué operadores usar con números?
- -lt: menor que.
- -le: menor o igual que.
- -ge: mayor o igual que.
# Clasificación por edad (números) if [ "$edad" -lt 10 ]; then echo "La persona es un niño o niña." elif [ "$edad" -le 17 ]; then echo "La persona se trata de un adolescente." else echo "La persona es mayor de edad." fi
- Para combinar condiciones, agrega un operador lógico (AND/OR) entre pruebas.
- Recuerda: respeta los espacios al usar corchetes en las condiciones.
¿Cómo comparar cadenas y verificar directorios?
Con cadenas, se usa igualdad con comillas. Con rutas, se valida la existencia de directorios con el argumento -d. Así puedes adaptar la lógica del flujo a texto y al sistema de archivos.
¿Cómo comparar cadenas con igualdad y operadores lógicos?
- La comparación de cadenas usa = y el valor va entre comillas.
- Para múltiples países, combina condiciones con operador lógico OR.
# Nacionalidad (cadenas) if [ "$pais" = "Estados Unidos" ]; then echo "La persona es americana." elif [ "$pais" = "Ecuador" -o "$pais" = "Colombia" ]; then echo "La persona es de Suramérica." else echo "Se desconoce la nacionalidad." fi
¿Cómo saber si un directorio existe con -d?
- Usa -d para verificar si un path apunta a un directorio existente.
- Muestra un mensaje claro según el resultado.
# Verificación de directorios if [ -d "$path_archivo" ]; then echo "$path_archivo existe." else echo "$path_archivo no existe." fi
¿Qué resultados se observaron al probar?
- Entrada: edad 35, país "Ecuador", path "Martosfre/prueba". Resultado: mayor de edad; de Suramérica; directorio no existe.
- Entrada: edad 67, país "Colombia", path "/home/Martosfre/Shell Course". Resultado: mayor de edad; de Suramérica; el path existe.
¿Te gustaría comentar qué otras validaciones necesitas en tus scripts y cómo combinarías condiciones para tus casos reales?