Sentencia while loop
Clase 25 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 controlar la iteración con precisión usando la sentencia WHILE LOOP. Aquí verás cómo repetir acciones en Ubuntu basándote en una condición lógica, cuándo se detiene el ciclo y qué detalles de sintaxis evitan errores. El enfoque contrasta con for: no recorres una lista, sino que repites mientras una condición sea verdadera.
¿Qué es while loop y cómo se diferencia del for?
La idea central: iterar mientras una condición lógica sea verdadera. A diferencia de for, que recorre una lista de valores de inicio a fin, while loop depende de una evaluación booleana: verdad o falsedad. La palabra reservada WHILE encabeza el formato, seguida de la condición que se evalúa en cada vuelta.
¿Cuál es la estructura básica en Ubuntu?
Formato esencial con variable, condición e incremento. El bloque se cierra con done:
#!/usr/bin/env bash
numero=1
while [ $numero -ne 10 ]
do
echo "Imprimiendo $numero veces"
numero=$(( numero + 1 ))
done
- Variable inicial:
numero=1. - Condición numérica “no igual a 10”: operador “-ne” (pronunciado “menos e”).
- Mensaje: "Imprimiendo n veces" con el símbolo de Sucre
$antes de la variable. - Incremento con aritmética:
numero=$(( numero + 1 ))usando paréntesis externos e internos. - Cierre del bloque con
done.
¿Por qué la condición lógica controla la iteración?
- Porque define si se sigue o se detiene en cada vuelta.
- Si la condición es verdadera, continúa la ejecución del cuerpo.
- Si la condición deja de cumplirse, el ciclo se corta inmediatamente.
¿Qué hace done y por qué es obligatorio?
- Marca el final del bloque del while loop.
- Indica al intérprete dónde termina la sentencia de iteración.
- Evita errores de sintaxis y comportamientos inesperados.
¿Cómo implementar while loop para contar hasta 10?
Se prepara un script en Ubuntu (copiando la secuencia 16 a la 17, renombrando y editando). Se define la variable numero en 1, se imprime un mensaje en cada iteración y se incrementa en uno hasta que el valor alcance 10. Cuando numero es 10, la condición “no igual a 10” deja de ser verdadera y el ciclo se detiene.
#!/usr/bin/env bash
# Programa para ejemplificar el uso de la sentencia de iteración WHILE LOOP
numero=1
while [ $numero -ne 10 ]
do
echo "Imprimiendo $numero veces"
numero=$(( numero + 1 ))
done
- Ejecución típica en Ubuntu:
./17tras dar permisos y ubicar el archivo correcto. - Resultado observado: se imprime desde 1 hasta 9.
- Al llegar a 10, el loop se detiene porque la condición ya no aplica.
¿Qué detalles de sintaxis evitan errores?
- Mantener un espacio entre la palabra reservada
whiley la condición. - Usar correctamente los corchetes de prueba
[ ... ]para la condición. - Incluir el símbolo de Sucre
$al referenciar la variable enechoy en la aritmética. - Verificar los paréntesis externos e internos en
$(())para el incremento. - Cerrar siempre el bloque con
done.
¿Qué salida esperar y cuándo se detiene?
- Mensajes del tipo: “Imprimiendo 1 veces”, “Imprimiendo 2 veces”, … “Imprimiendo 9 veces”.
- El ciclo se corta cuando
numerollega a 10. - La condición “no igual a 10” deja de cumplirse y el loop finaliza de forma controlada.
¿Qué habilidades y conceptos refuerzas para Postgres?
Este ejercicio fortalece el control de flujo con while loop, el uso de expresiones condicionales y operadores aritméticos en scripts de Ubuntu. Además, promueve atención a detalles de formato: espacios, uso del símbolo $, paréntesis y cierre con done. Todo se integra en la construcción de un programa utilitario que más adelante dará soporte al objetivo con Postgres.
¿Tienes dudas sobre la condición o el incremento? Comenta tu caso y revisamos juntos el while loop paso a paso.