Avanzando con nuestros tutoriales ahora, presentemos el bucle for en scripts de shell en nuestro tema de hoy. Ya hemos cubierto el mientras bucle en nuestro tutorial anterior y usamos el romper y continuar declaraciones para salir del ciclo while basado en ciertas condiciones. ¡Vamos directo al tema entonces!
Tabla de contenido
- ¿Cuál es la diferencia entre el bucle while y el bucle for en los scripts de Shell?
- Definición del bucle for de Bash
- ¿Cómo usar el bucle for?
- Conclusión
¿Cuál es la diferencia entre el bucle while y el bucle for en los scripts de Shell?
La principal diferencia entre for loop y while loop está en su definición y sintaxis. Cuando trabajamos con el ciclo while, proporcionamos una condición para que el ciclo while continúe hasta que se vuelva falso. No especificamos el número de iteraciones para el bucle. Por otro lado, el bucle for toma 2 o 3 condiciones y la última condición suele decidir el número de iteraciones.
La primera condición es la variable que itera a través de una secuencia cuando comienza el bucle y se incrementa automáticamente en función de lo que está iterando. Para examplesi tiene que recorrer una secuencia de números, la variable se incrementa en función de los números que se le proporcionen.
Si todo lo que escribí anteriormente te sonó como un galimatías, solo continúa leyendo y todo se aclarará pronto.
Definición del bucle for de Bash
Hay dos formas de definir el bash en bucle. El primero es el bash estilo con dos variables, y el segundo es estilo C con 3 variables. Aquí está la sintaxis para ambos.
Estilo Bash para definición de bucle:
for VARIABLE in SEQUENCE
los VARIABLE es el nombre de la variable a usar dentro del ciclo, y el SECUENCIA es cualquier cosa, desde una secuencia de números, varios archivos, comandos de Linux, etc.
Estilo C para definición de bucle:
for (( variable declaration; condition; increment variable))
¿Cómo usar el bucle for?
Ahora que tiene una comprensión básica de la en bucle , es hora de empezar a usarlo en nuestros scripts. Comenzaremos creando un bucle for simple que itere sobre una secuencia de números determinada.
#!/bin/bash for i in 1 2 3 4 5 6 7 do echo "Loop number $i" done
Muy simple de entender? Pasemos a un grupo de secuencia diferente.
Bash For Loop Over Archivos
El bucle for no lee el contenido del archivo cuando hacemos un bucle sobre él, sino que solo nos permite realizar operaciones en archivos individuales mientras hacemos un bucle sobre ellos. veamos un example debajo.
#!/bin/bash for i in *.txt do echo "Contents from the files: $i" cat $i done
He creado dos archivos con algo de texto para fines de demostración. mira como escribo comando gato una vez y el ciclo for itera sobre ambos archivos.
Escribir estilo C para bucles en scripts de Shell
Debería sentirse cómodo iterando sobre secuencias individuales ahora. Pasemos al estilo C para bucles del que hablamos antes. Si ya ha trabajado con C o C++, esto será casi lo mismo. Pero incluso si no lo has hecho, no es demasiado difícil.
Vamos a crear un bucle for que itere 7 veces y repita el número.
for (( i=1; i<=7; i++ )) do echo "Loop number $i" done

Entendamos el bucle sección por sección. La razón por la que usamos el doble paréntesis es para señalar bash que estamos usando una expresión de estilo C entre corchetes.
- La primera expresión: yo=1 crea el inicio del bucle.
- La segunda expresión: yo<=7 dice que el ciclo debe ejecutarse hasta que la variable sea menor o igual a 7
- La última expresión: yo ++ decide cómo ocurre el incremento. En este caso, sucede por 1
Conclusión
Espero que esto te ayude a comprender cómo funciona el bucle for en los scripts de shell. Siéntase libre de comentar a continuación para cualquier pregunta que pueda tener.