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?
Tabla de Contenidos
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!