Expresiones Condicionales
Clase 21 de 43 • Curso de Programación en Bash Shell
Contenido del curso
Programación Shell Básica
Script Interactivos
Condicionales
Iteración
Archivos
Empaquetamiento
Funciones
Cierre del curso
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?