Ejemplos del Bucle For en Bash

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
doneLenguaje 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"
doneLenguaje del código: PHP (php)

Ejemplo con archivos:

for archivo in file1.txt file2.txt file3.txt
do
   echo "Procesando $archivo"
doneLenguaje del código: PHP (php)

Ejemplo con salida de un comando:

for user in $(cat usuarios.txt)
do
   echo "Creando cuenta para $user"
doneLenguaje 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"
doneLenguaje 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"
doneLenguaje del código: PHP (php)

Para definir un incremento, usa {inicio..fin..paso}:

for i in {0..10..2}
do
   echo "Valor: $i"
doneLenguaje del código: PHP (php)

Salida esperada:

Valor: 0
Valor: 2
Valor: 4
Valor: 6
Valor: 8
Valor: 10Lenguaje 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"
doneLenguaje 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"
doneLenguaje 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)"
doneLenguaje 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"
doneLenguaje 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"
doneLenguaje 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"
doneLenguaje 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"
doneLenguaje 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"
doneLenguaje 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"
doneLenguaje del código: PHP (php)

Ejemplo de uso:

$ ./script.sh uno dos tres

Salida esperada:

Argumento: uno
Argumento: dos
Argumento: tresLenguaje 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"
doneLenguaje 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 con continue.
  • 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 breakLenguaje del código: JavaScript (javascript)

¿Tienes dudas o necesitas más ejemplos? ¡Prueba estos scripts en tu sistema y dime cómo te fue! 🚀

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×