Expresiones Condicionales

Clase 21 de 43Curso de Programación en Bash Shell

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?

      Expresiones Condicionales