El bucle for en Bash es una estructura de control que permite ejecutar repetidamente un conjunto de comandos sobre una lista de valores. Se usa para automatizar tareas repetitivas, como procesar archivos, iterar sobre arrays o ejecutar comandos en múltiples servidores.
Esta guía te mostrará ejemplos prácticos y avanzados, incluyendo bucles infinitos, salida condicional, bucles con arrays, sustitución de comandos y más.
Sintaxis del Bucle For en Bash
La sintaxis básica del bucle for en Bash es:
for VARIABLE in lista_de_valores
do
comando1
comando2
comandoN
done
Lenguaje del código: JavaScript (javascript)
Ejemplo con una lista de números:
for i in 1 2 3 4 5
do
echo "Iteración número $i"
done
Lenguaje del código: PHP (php)
Ejemplo con archivos:
for archivo in file1.txt file2.txt file3.txt
do
echo "Procesando $archivo"
done
Lenguaje del código: PHP (php)
Ejemplo con salida de un comando:
for user in $(cat usuarios.txt)
do
echo "Creando cuenta para $user"
done
Lenguaje del código: JavaScript (javascript)
Ejemplo 1: Imprimir un Mensaje Varias Veces
Este script imprimirá «Bienvenido X veces» cinco veces:
#!/bin/bash
for i in 1 2 3 4 5
do
echo "Bienvenido $i veces"
done
Lenguaje del código: PHP (php)
Otra forma de definir un rango de números es usar {inicio..fin}
:
for i in {1..5}
do
echo "Bienvenido $i veces"
done
Lenguaje del código: PHP (php)
Para definir un incremento, usa {inicio..fin..paso}
:
for i in {0..10..2}
do
echo "Valor: $i"
done
Lenguaje del código: PHP (php)
Salida esperada:
Valor: 0
Valor: 2
Valor: 4
Valor: 6
Valor: 8
Valor: 10
Lenguaje del código: HTTP (http)
Ejemplo 2: Bucle For con la Comando seq
Si usas una versión antigua de Bash (anterior a 3.0), puedes usar seq
:
for i in $(seq 1 2 10)
do
echo "Número impar: $i"
done
Lenguaje del código: JavaScript (javascript)
Salida esperada:
Número impar: 1
Número impar: 3
Número impar: 5
Número impar: 7
Número impar: 9
⚠️ Nota: En versiones modernas de Bash, se recomienda usar {inicio..fin..paso}
en lugar de seq
, ya que es más eficiente.
Ejemplo 3: Bucle For al Estilo C
El bucle for estilo C usa tres parámetros: inicialización, condición y actualización.
#!/bin/bash
for (( i=1; i<=5; i++ ))
do
echo "Iteración $i"
done
Lenguaje del código: PHP (php)
Salida esperada:
Iteración 1
Iteración 2
Iteración 3
Iteración 4
Iteración 5
Ejemplo 4: Bucle For Infinito
Un bucle for infinito se crea dejando vacíos los tres parámetros:
#!/bin/bash
for (( ; ; ))
do
echo "Bucle infinito... (presiona CTRL+C para salir)"
done
Lenguaje del código: PHP (php)
Ejemplo 5: Salir de un Bucle con break
El comando break
permite detener el bucle cuando se cumple una condición:
for i in {1..10}
do
if [ $i -eq 5 ]; then
echo "Saliendo del bucle en $i"
break
fi
echo "Iteración $i"
done
Lenguaje del código: PHP (php)
Salida esperada:
Iteración 1
Iteración 2
Iteración 3
Iteración 4
Saliendo del bucle en 5
Ejemplo 6: Omitir Iteraciones con continue
El comando continue
omite la iteración actual y pasa a la siguiente:
for i in {1..10}
do
if [ $(( i % 2 )) -eq 0 ]; then
continue
fi
echo "Número impar: $i"
done
Lenguaje del código: JavaScript (javascript)
Salida esperada:
Número impar: 1
Número impar: 3
Número impar: 5
Número impar: 7
Número impar: 9
Ejemplo 7: Iterar sobre Elementos de un Array
En este ejemplo, usamos un array para iterar sobre una lista de servidores:
SERVIDORES=("server1" "server2" "server3")
for server in "${SERVIDORES[@]}"
do
echo "Conectando a $server..."
ssh root@$server "uptime"
done
Lenguaje del código: PHP (php)
Ejemplo 8: Bucle For con Variables
Podemos almacenar datos en una variable y recorrerla con un bucle:
LISTA="archivo1.txt archivo2.txt archivo3.txt"
for f in $LISTA
do
echo "Procesando $f"
done
Lenguaje del código: PHP (php)
Ejemplo 9: Iterar sobre Archivos en un Directorio
Este script lista y procesa todos los archivos de un directorio:
for archivo in /ruta/del/directorio/*
do
echo "Procesando $archivo"
done
Ejemplo 10: Sustitución de Comandos dentro de un Bucle For
Podemos usar la salida de un comando como lista de elementos:
for usuario in $(cut -d: -f1 /etc/passwd)
do
echo "Usuario: $usuario"
done
Lenguaje del código: JavaScript (javascript)
Ejemplo 11: Uso de Argumentos en la Línea de Comandos
Podemos recorrer los argumentos que recibe un script:
#!/bin/bash
for arg in "$@"
do
echo "Argumento: $arg"
done
Lenguaje del código: PHP (php)
Ejemplo de uso:
$ ./script.sh uno dos tres
Salida esperada:
Argumento: uno
Argumento: dos
Argumento: tres
Lenguaje del código: HTTP (http)
Ejemplo 12: Encontrar Tiempo de Ping para Múltiples IPs
Este script hace ping a varias IPs y muestra los tiempos de respuesta:
#!/bin/bash
IPS="8.8.8.8 8.8.4.4 1.1.1.1 9.9.9.9"
for ip in $IPS
do
ping -c 4 "$ip"
done
Lenguaje del código: PHP (php)
Resumen
- El bucle for permite iterar sobre listas de valores, archivos o comandos.
- Se puede definir un rango de números con
{inicio..fin..paso}
. - Los bucles pueden ser infinitos, salir con
break
u omitir iteraciones concontinue
. - Se pueden recorrer arrays, archivos, variables y argumentos en la línea de comandos.
- Usar la sustitución de comandos permite procesar la salida de otros comandos.
Lecturas Recomendadas
Si deseas profundizar más en Bash scripting, revisa estos recursos:
También puedes acceder a documentación desde tu terminal:
man bash
help for
help continue
help break
Lenguaje del código: JavaScript (javascript)
¿Tienes dudas o necesitas más ejemplos? ¡Prueba estos scripts en tu sistema y dime cómo te fue! 🚀