Menu
Coddy logo textTech

Bucle While

Parte de la sección Fundamentos del Journey de Terminal de Coddy. Lección 72 de 82.

El bucle for es excelente cuando sabes exactamente por qué elementos iterar. Pero ¿qué pasa si quieres seguir iterando hasta que cambie una determinada condición? Ahí es donde entra en juego el bucle while.

Un bucle while continúa ejecutándose mientras su condición siga siendo verdadera. Esta es la estructura básica:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

Este script imprime los números del 1 al 5.

El bucle comprueba si count es menor o igual que 5. Si es verdadero, ejecuta el cuerpo, incrementa el contador usando $((...)) para la aritmética y vuelve a comprobar.

Una vez que count alcanza 6, la condición se vuelve falsa y el bucle se detiene.

Los bucles while son perfectos cuando no sabes de antemano cuántas iteraciones necesitas. Por ejemplo, podrías seguir solicitando una entrada hasta que el usuario escriba "quit":

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

Ten cuidado con los bucles while. Si la condición nunca se vuelve falsa, tu bucle se ejecuta para siempre.

Asegúrate siempre de que algo dentro del bucle cambie finalmente la condición, como incrementar un contador o actualizar una variable basándose en la entrada del usuario.

challenge icon

Desafío

Fácil

Crea un script de shell llamado counter.sh que use un bucle while para imprimir números del 1 al 4.

Tu script debe:

  1. Comenzar con la línea shebang (#!/bin/bash)
  2. Crear una variable llamada num con el valor inicial 1
  3. Usar un bucle while que continúe mientras num sea menor o igual que 4
  4. Dentro del bucle, imprimir el número actual con el formato: Number: [num]
  5. Incrementar num en 1 después de cada iteración usando $((num + 1))

Haz que el script sea ejecutable y ejecútalo. Tu salida debe ser:

Number: 1
Number: 2
Number: 3
Number: 4

Pista: Usa -le para la comparación «menor o igual que». Recuerda incrementar el contador dentro del bucle con num=$((num + 1)) para evitar un bucle infinito. Termina tu bucle while con done.

Pruébalo tú mismo

Terminal
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de Terminal