Los bucles son estructuras críticas en cualquier lenguaje de programación y desempeñan un papel en la ejecución de tareas repetitivas que, de otro modo, serían engorrosas y llevarían mucho tiempo ejecutar en código normal. En las secuencias de comandos de bash, los bucles tienen el mismo propósito y, en esta guía, analizamos más de cerca varios tipos de bucles y cómo se utilizan.
Para bucles
Un bucle For se utiliza para iterar sobre una lista de objetos o elementos. La lista puede comprender números, cadenas, caracteres o incluso matrices.
Un bucle for toma la siguiente estructura.
for item in list_of_items do command1 command2 done
Tomemos algunos ejemplos:
Recorriendo una lista de cadenas
En el siguiente ejemplo, estamos iterando sobre una lista de cadenas, en este caso, planetas, que comprende cuatro elementos. Después de la iteración, imprimiremos cada elemento en el perdido usando el echo comando.
for planet in Mercury Venus Earth Mars Jupiter do echo $planet done
Luego asigne permisos de ejecución y ejecute for_loop.sh guion bash. La salida muestra todos los elementos contenidos en la lista.
$ ./for_loop.sh
Recorrer un rango de números
Con bucles for, también puede especificar una secuencia en un rango de números definiendo el punto de inicio y el punto final usando la expresión de secuencia provista.
{START..END}
El siguiente ejemplo muestra un bucle for que muestra números del 1 al 10
for n in {0..10} do echo value: $n done
Ejecutar el bucle le da el resultado que se muestra.
Además, puede especificar el número de incrementos por pasos entre valores utilizando la siguiente expresión de secuencia.
{START..END..STEPWISE_INCREMENT}
Por ejemplo, el siguiente ciclo muestra números del 1 al 10 con un aumento de paso de 2 entre los valores.
for n in {0..10..2} do echo value: $n done
Cuando se ejecuta, el bucle produce el siguiente resultado.
Recorrer una serie de elementos
Además, puede aprovechar los bucles for para iterar sobre una matriz de elementos. Por ejemplo, aquí tenemos una matriz llamada "PELÍCULAS" con diferentes elementos que son títulos de películas.
#!/bin/bash MOVIES=('Happy Feet' 'Who killed Sara' 'Lupin' 'Money Heist' 'House of cards') for movie in "${MOVIES[@]}"; do echo Movie: $movie done
Cuando se ejecuta el script, el bucle for itera sobre toda la matriz e imprime los títulos de las películas como se muestra.
Resumen
Como ha observado, los bucles for son bastante simples y prácticos. Crean un código más limpio al eliminar el código repetitivo que consume mucho tiempo para el usuario. Las tareas repetitivas se pueden realizar fácilmente en unas pocas líneas simples.