Bucles
Bucles en Bash
Los bucles permiten repetir acciones automáticamente mientras se cumpla una condición o para una serie de valores. Son esenciales para automatizar tareas repetitivas.
En Bash los bucles más usados son:
forwhileuntil
Bucle for
Se usa cuando sabemos cuántas veces queremos repetir algo o cuando recorremos una lista de valores.
📌 Estructura básica
for variable in lista
do
comandos
done
🔹 Ejemplo 1: Repetir una acción varias veces
for i in 1 2 3 4 5
do
echo "Número: $i"
done
Rangos en for
Rango numérico clásico
for i in {1..5}
do
echo $i
done
Rango con salto
for i in {1..10..2}
do
echo $i
done
👉 Imprime: 1 3 5 7 9
Rango descendente
for i in {10..1}
do
echo $i
done
Rango estilo C
for (( i=1; i<=5; i++ ))
do
echo $i
done
👉 Muy útil cuando vienes de otros lenguajes.
Recorrer archivos o directorios
Ejemplo: listar archivos de un directorio
for archivo in *.txt
do
echo "Archivo: $archivo"
done
Bucle while
Se ejecuta mientras la condición sea verdadera.
📌 Estructura
while [ condición ]
do
comandos
done
Ejemplo: contar hasta 5
i=1
while [ "$i" -le 5 ]
do
echo $i
((i++))
done
Ejemplo real: leer entrada del usuario
while true
do
read -p "Escribe 'salir' para terminar: " texto
[ "$texto" = "salir" ] && break
echo "Has escrito: $texto"
done
Bucle until
Es lo contrario de while: se ejecuta hasta que la condición sea verdadera.
i=1
until [ "$i" -gt 5 ]
do
echo $i
((i++))
done
break: salir del bucle
Permite romper el bucle inmediatamente.
Ejemplo: detenerse al encontrar un número
for i in {1..10}
do
if [ "$i" -eq 5 ]; then
break
fi
echo $i
done
👉 Se detiene al llegar a 5.
continue: saltar una iteración
Salta solo la iteración actual, pero el bucle continúa.
Ejemplo: saltar números pares
for i in {1..10}
do
if (( i % 2 == 0 )); then
continue
fi
echo $i
done
👉 Muestra solo impares.
Combinando bucles y condicionales
Ejemplo real: comprobar varios archivos
for archivo in archivo1.txt archivo2.txt archivo3.txt
do
if [ -f "$archivo" ]; then
echo "$archivo existe"
else
echo "$archivo no existe"
fi
done
Ejemplo práctico completo
Contador con opción de parar
i=1
while true
do
echo "Número: $i"
((i++))
read -p "¿Continuar? (s/n): " resp
[ "$resp" = "n" ] && break
done
Resumen rápido
| Elemento | Uso |
|---|---|
for |
Repeticiones con lista o rango |
while |
Repetir mientras condición sea verdadera |
until |
Repetir hasta que condición sea verdadera |
{1..10} |
Rango |
{1..10..2} |
Rango con salto |
break |
Sale del bucle |
continue |
Salta una vuelta |
Para saber más: