Guía y ejemplos del bucle for en Bash (Bash For Loop)

Un bucle for es una de las declaraciones principales en varios lenguajes de programación y ayuda en la gestión de tu servidor VPS. Aquí, explicaremos cómo se usa en el lenguaje de programación bash, de ahí el nombre, “bucle for para bash – bash for loop”. ¡Prepárate para agregar una nueva herramienta a tu arsenal de desarrollador!

Un bucle for es una declaración de iteración, lo que significa que puedes ejecutar código repetidamente. Digamos que quieres ejecutar una instrucción 5 veces. En lugar de escribir cinco códigos separados, puedes escribir una sintaxis de bucle for (for loop) una sola vez. Entremos en detalles, ¿de acuerdo?

Sintaxis del bucle for para bash

Básicamente, la sintaxis del bucle for (for loop) en Bash más simple repite la aparición de un conjunto de una variable. La sintaxis generalmente se ve así:

for VARIABLE in 1 2 3 4 5 .. N
Ejecute el siguiente comando:
    command1
    command2
    commandN
done

En el mundo real, esta sintaxis se vería como en el siguiente ejemplo:

#!/bin/bash
for i in 1 2 3 4 5
do
 echo "Hello $i"
done

La ejecución del archivo bash genera el siguiente texto:

Hello 1
Hello 2
Hello 3
Hello 4 
Hello 5

Inspeccionemos cada elemento:

  • #!/bin/bash: muestra que el código es un script de bash
  • i: es un marcador de posición para una variable. Por su parte, $i es el valor individual de la variable. También puedes escribirlo como c/$c o con cualquier otro nombre
  • in: separa la variable y los elementos que siguen
  • 1 2 3 4 5: es un ejemplo de elementos en los que deseas realizar la instrucción
  • do: es la palabra clave que inicia los bucles. Ejecutará la instrucción n veces, siendo n el número total de elementos. Aquí, el valor de n es 5
  • echo “Hello: $i”: es el código que repetiremos n veces. Recuerda que las comillas convierten cualquier cosa dentro de ellas en una variable.
  • done: detiene el bucle

El código se puede escribir de manera diferente según la versión de bash que estés ejecutando:

Bash versión 3.0 o superior puede acortar el rango con ” . . “.

#!/bin/bash
for i in {1. .5}
do
  echo "Hai $i"
done

Bash versión 4.0 o superior te permite usar la sintaxis {START. .END. .INCREMENT}.

#!/bin/bash
for i in {0. .8. .2}
do
  echo "Hai $i"
done

El resultado se verá así:

Hai 0
Hai 2
Hai 4
Hai 6 
Hai 8

Las otras dos sintaxis comunes son:

for VARIABLE in file1 file2 file3
do
    command1 on $VARIABLE
    command2
    commandN
done

O así:

for OUTPUT in $(Linux-Or-Unix-Command-Here)
do
    command1 on $OUTPUT
    command2 on $OUTPUT
    commandN
done

Ejemplos del bucle for para bash

Puedes actualizar la sintaxis para realizar múltiples operaciones. Recuerda que antes de hacer cualquier cosa deberás iniciar sesión en tu servidor VPS. Si tienes algún problema, este tutorial te pondrá en el camino correcto. Mientras tanto, si tienes problemas con bash, deberías consultar nuestra guía sobre las funciones básicas de bash. Recuerda que las funciones bash deben estar en un archivo .sh. Para crear uno, ejecuta lo siguiente en la línea de comando:

vim NombreDeArchivo.sh

Esto creará un archivo .sh y lo abrirá en el editor VIM. Puedes obtener más información en el artículo sobre las funciones básicas de bash mencionado anteriormente.

Usando bucle for para crear un bucle infinito

Una vez activado, este bucle seguirá ejecutando el código hasta que lo detengas presionando Control + C. En este caso, la frase “Hola mundo” seguirá apareciendo por sí misma.

#!/bin/bash
for (( ; ; ))
do
  echo "¡Hola mundo!"
done

Usando Bash For Loop para crear un bucle de tres expresiones

Este bucle se compone de tres expresiones escritas: un inicializador (EXP1), una condición (EXP2) y una expresión de conteo (EXP3). A veces la gente lo llama el bucle de estilo C debido al parecido cercano en la estructura del código. La sintaxis de este bucle es la siguiente:

for (( EXP1; EXP2; EXP3 ))
do
    command1
    command2
    command3
done

Aquí hay un ejemplo que puedes probar tú mismo:

#!/bin/bash
for (( c=1; c<=5; c++ ))
do  
  echo "Hai $c"
done

El código dice que el valor inicial es 1. El bucle se ejecutará siempre que la condición en EXP2 sea ​​verdadera, lo que significa que no debe ser mayor que 5. Además, el signo ++ muestra que el incremento es 1 . Luego repetirá el bucle uno por uno a partir del valor inicial. Resultado:

Hai 1
Hai 2
Hai 3
Hai 4 
Hai 5

Usando el bucle for para Bash para crear el bucle omitir y continuar

La instrucción continue omite el bucle para el valor indicado y continúa con el bucle siguiente. Así es como se vería la sintaxis:

for I in 1 2 3 4 5
do
 if [condition]
 then
    continue   #Pasa a la siguiente iteración de I en el bucle y omite la instrucción o statement
 fi
 statement
done

Siguiendo la sintaxis podemos crear un bucle de omitir y continuar (skip and continue loop) como este:

for i in {1..5}
do
  if [[ "$i" == '4' ]]
  then
    continue
  fi
  echo "Hai $i4"
done

El resultado sería:

Hai 1
Hai 2
Hai 3
Hai 5

Como el valor 4 coincidía con la instrucción continue, el bucle no ejecutó el código y pasó al siguiente valor, que es 5.

Usando Bash for Loop para crear una salida condicional con Break Loop

Este bucle permite detener la operación si cumple con la condición establecida. Esto puede estar seguido por otra instrucción. Aquí está la sintaxis:

for I in 1 2 3 4 5
  do
  if [condition]
  then
    break
  fi
  statement
done

Al usar esta función, nuestro código se vería así:

for ciudad in Manila Bangkok Yakarta Kuala Lumpur
do
  if [[ "$ciudad" == 'Yakarta' ]]; then
    break
  fi
  echo "ciudad: $ciudad"
done

echo 'Sí, ¡eso es todo!'

Y por último el resultado:

ciudad: Manila
ciudad: Bangkok
Sí, ¡eso es todo!

La instrucción le dice al bucle que interrumpa la operación cuando la condición sea verdadera (encontrar el término Yakarta). Luego ejecutará el segundo código, que imprime un texto que dice Sí, ¡eso es todo!

Resumen

Bash for loop es ideal para automatizar tareas repetitivas. Además de los ejemplos básicos anteriores, puedes hacer mucho más. Por ejemplo, puedes rastrear archivos y realizar muchas otras tareas. ¡La lista continua!

Todo lo que tienes que hacer es escribir la sintaxis. Puede que la curva de aprendizaje sea difícil, pero leer esta introducción es un buen comienzo. ¡La práctica hace al maestro! ¡Buena suerte!

Author
El autor

Gustavo B.

Gustavo es un apasionado por la creación de sitios web. Se enfoca en la aplicación de estrategias SEO en Hostinger para España y Latinoamérica, así como la creación de contenidos de alto nivel. Cuando no está aplicando nuevos trucos en WordPress lo puedes encontrar tocando la guitarra, viajando o tomando un curso online.