Sentencias If/Else
Clase 18 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
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
thensi escribes en la misma línea. - Comparación numérica con
(( ... ))o con[-le,-ge]. - Operadores lógicos:
&¶ AND; mantén cada comparación en su propio[ ... ]para claridad. - Entrada estándar:
read -ppara el prompt;read -n 1para un carácter. - Mensajes claros con
echopara 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.