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.