Sentencias If/Else

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

Resumen

Aprende a dominar las sentencias condicionales en Bash con ejemplos claros y comentados. Aquí verás cómo aplicar if, else y elif, la diferencia entre usar doble paréntesis y corchetes, y qué operadores numéricos y lógicos emplear para validar rangos y decisiones de forma fiable.

¿Cómo funcionan las sentencias if, else y elif en Bash?

Las decisiones en Bash siguen una sintaxis clara: if evalúa una condición, then ejecuta sentencias cuando es verdadera, elif añade más condiciones y else cubre el caso final. El bloque siempre cierra con fi.

  • Con corchetes: respeta espacios después de "[" y antes de "]". Siempre.
  • Con doble paréntesis: ideal para comparaciones aritméticas simples.
  • En la misma línea de la condición puedes usar "; then"; en multilinea, pon "then" en la siguiente línea.

¿Cómo validar una nota con doble paréntesis?

Ejemplo aritmético usando lectura desde teclado con read -n y read -p.

read -n 1 -p "Indique cuál es su nota (1-9): " nota_clase echo if (( nota_clase >= 7 )); then echo "El alumno aprueba la materia." else echo "El alumno reprueba la materia." fi

Puntos clave:

  • read -n 1: lee un solo carácter.
  • read -p: muestra un mensaje antes de leer.
  • (( ... )): permite comparaciones numéricas como >=.

¿Qué ejemplos prácticos se implementan con variables y read?

Además de notas, puedes evaluar condiciones sobre la edad con operadores específicos de Bash y extender decisiones con elif para manejar múltiples rangos.

¿Cómo validar edad con corchetes y -le?

Usa comparadores numéricos propios del test con corchetes.

read -p "Indique cuál es su edad: " edad if [ "$edad" -le 18 ]; then echo "La persona no puede sufragar o votar." else echo "La persona puede sufragar." fi

Puntos clave:

  • [ ... ]: respeta espacios antes de ] y después de [.
  • -le: lower or equal (menor o igual).
  • Alternativas relacionadas: -ge para mayor o igual.

¿Cómo manejar múltiples rangos con elif?

Cuando hay más de dos opciones, incorpora elif y operadores lógicos.

read -p "Indique cuál es su edad: " edad if [ "$edad" -le 18 ]; then echo "La persona es adolescente." elif [ "$edad" -ge 19 ] && [ "$edad" -le 64 ]; then echo "La persona es adulta." else echo "La persona es adulto mayor." fi

Puntos clave:

  • elif añade condiciones intermedias sin cerrar el bloque.
  • && combina condiciones (AND lógico) para definir rangos.
  • Una vez que una condición es verdadera, las siguientes no se evalúan.

¿Qué reglas de sintaxis y operadores debes cuidar en Bash?

Mantener una sintaxis estricta evita errores sutiles. Estas son las prácticas esenciales vistas:

  • Espacios obligatorios en [ condición ]. Sin espacios falla.
  • Palabras clave en orden: if, then, elif, else, fi.
  • Punto y coma antes de then si escribes en la misma línea.
  • Comparación numérica con (( ... )) o con [ -le, -ge ].
  • Operadores lógicos: && para AND; mantén cada comparación en su propio [ ... ] para claridad.
  • Entrada estándar: read -p para el prompt; read -n 1 para un carácter.
  • Mensajes claros con echo para confirmar cada rama de decisión.

¿Tienes otra validación que quieras automatizar en Bash? Cuéntala en los comentarios y probamos juntos sus condiciones.