Descripción general de secuencias de comandos de bucle en shell

Para el bucle en Shell Scripting en esto, digamos que si queremos realizar una tarea o una operación de forma repetitiva, podemos escribir el mismo código tantas veces, lo cual es una tarea que consume mucho tiempo y que no es eficiente también. Para evitar este tipo de escenarios, podemos usar bucles como for loop en un lenguaje de programación. Por lo tanto, for loop se usa para realizar una tarea particular como la suma / multiplicación o cualquier otra operación durante un cierto número de veces hasta que se cumpla la condición de terminación en cualquier sistema operativo. No necesitamos escribir el mismo código una y otra vez usando for loop.

Sintaxis de for loop

La sintaxis de for loop in shell scripting se puede representar de diferentes maneras como a continuación:

1. Primer método de sintaxis

for var in list
do
command1
command2
done

Del ejemplo anterior, tenemos palabras clave predefinidas o palabras clave integradas como for, do, done y in. Mientras que list es una lista de variables o una lista de palabras o una lista de números y var es un nombre de variable durante esa iteración. Si no se proporciona una lista, bash tomará un parámetro posicional que pasamos en el shell. En el bucle for anterior, ejecutará todos los comandos que hay entre do y done durante n cantidad de veces donde n es el tamaño de la lista. Por ejemplo, si el tamaño de la lista es 5 con números del 1 al 5, durante la primera iteración 1 se almacenará en var y las operaciones en var se realizarán mediante el cuerpo del bucle for donde hay comandos.

2. Segundo método de sintaxis

for ( ( expr1; expr2; expr3 ))
do
command1
command2
….
done

En la sintaxis anterior, si observamos esta sintaxis es similar a la sintaxis de for loop en el lenguaje de programación c. En for loop, hay tres expresiones donde la primera expresión es para inicialización, la segunda es para verificación condicional y la tercera es para actualizar el iterador. La ejecución en el bucle anterior para comenzará de esta manera, antes de comenzar la primera iteración expr1 se ejecuta, lo que significa que la inicialización se realizará después de que las operaciones / comandos entre do y done se ejecuten iterativamente hasta que expr2 se evalúe como verdadero y después de cada iteración expr3 actualice el valor de iterador (contador) para que las operaciones se realicen en el siguiente elemento o valor en la lista o matriz o cadena.

Diagrama de flujo: para el bucle en Shell Scripting

Consideremos un ejemplo de bucle for y analicemos su flujo utilizando el diagrama de flujo.

for filename in *.dat
do
echo cp $fname orig_$fname
done

En el diagrama de flujo anterior, explicamos el flujo del bucle for que itera sobre una lista de nombres de archivos y hay cuatro pasos en el flujo, como flujo de proceso, valor variable, proceso y stdout. En el flujo del proceso, está explicando cuándo comienza el ciclo for, el valor del iterador, verificando la condición si cumple y luego ejecuta el proceso, de lo contrario, finaliza el proceso. En valor variable, iteración por iteración obtendremos un nombre de archivo como textfile.dat y durante el proceso, ejecuta una declaración de eco donde muestra una declaración de copia con un nombre de archivo antiguo y un nombre de archivo nuevo en stdout. Entonces, este es el flujo del ciclo for que itera sobre la lista de nombres de archivos de entrada.

Salida:

¿Cómo funciona Loop en Shell Scripting?

El script for loop in shell funciona de la siguiente manera cada vez que shell ve la palabra clave porque sabe que necesita repetir un conjunto de comandos una vez para cada elemento de una lista. Cada vez que la iteración se ejecuta, un elemento de la lista se asigna a la variable var y la var se procesa a través de la lista de comandos presentes en el bucle entre hacer y hacer se ejecutan antes de pasar al siguiente elemento de la lista o la siguiente iteración. Accederemos al valor en el var usando $ antes de la variable para que cuando el script de shell lo procese, el valor en el var se sustituya en su lugar.

Ejemplo:

for filename in *.txt
do
ls filename
done

En el programa anterior, estamos pasando una lista de archivos .txt como entrada para el bucle for y el nombre de la variable es un nombre de archivo en el que el archivo .txt almacenará y luego procesará el nombre de archivo al enumerar el archivo .txt en el nombre de archivo y luego el mismo proceso se repetirá hasta que se complete el procesamiento de todos los archivos .txt.

Salida:

Ejemplos de for loop

Hasta ahora, hemos discutido cómo funciona el bucle for en script de shell y diferentes sintaxis. Ahora, veamos algunos ejemplos y revisémoslos y expliquemos todos y cada uno de los ejemplos de lo que hace.

Ejemplo 1

Permítanos una lista de valores estáticos como entrada para el bucle y cómo se ejecutará se verá a continuación:

for a day in Fri Thu Wed Tue Mon
do
echo “Todays day is $day”
done

En el ejemplo anterior, no deberíamos pasar valores de entrada con, ya que delimitador si lo pasamos considerará que el delimitador también es un valor como "Vie", y no deberíamos enumerar los valores usando comillas dobles "si los pasamos con comillas dobles, el script de shell tratará todos los valores como un valor único.

Un ejemplo o / p: Hoy día es: Vie Thu Wed Tue Mon (si usamos comillas dobles)

Salida:

Ejemplo # 2

Ahora veamos otro ejemplo donde usamos in para antes de la lista de entrada como se muestra a continuación:

Month = “Jan Feb Mar Apr May Jun”
for mon in $Month
do
echo “Month is $mon”
done

En el ejemplo anterior, realizamos la misma ejecución de for loop que en el ejemplo anterior, pero en lugar de la lectura de la lista de entrada se realizará utilizando la palabra clave "in". En las secuencias de comandos de shell, cada variable debe representarse entre comillas dobles, pero hay pocas excepciones, como si usamos comillas dobles en $ Month en la línea de bucle anterior, entonces tratará las palabras enteras como una sola línea. Entonces debemos cuidarlo.

Salida:

Ejemplo # 3

Ahora, escribiremos for loop sin la lista de entrada en la declaración for loop en su lugar, tomará la entrada de argumentos posicionales para el script y el ejemplo a continuación:

Permítanos el nombre del script de shell como sample.sh y su contenido de la siguiente manera:

for num
do
echo “Number is $num”
done
./sample.sh 1 2 3 4 5

En el ejemplo anterior, la entrada al bucle for se pasa de la lista de argumentos proporcionados al script para que para cada argumento procese todos los comandos y muestre la salida hasta que todos los argumentos se repitan.

Salida:

Conclusión: para el bucle en Shell Scripting

Finalmente, se trata de bucle en scripting de shell. Hemos discutido qué es for loop in shell scripting, para la sintaxis de loop, su diagrama de flujo explica el flujo de for loop, cómo funciona for loop en shell y ejemplos de for loop en shell scripting. Espero que comprenda bien el bucle, cómo usarlo en scripts de shell y ejecutarlo después de leer este artículo.

Artículos recomendados

Esta es una guía para el bucle For en las secuencias de comandos de Shell. Aquí discutimos la introducción, Cómo funciona el bucle for en scripting de shell, Diagrama de flujo y Ejemplo de bucle for. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Bucles en R
  2. Spark SQL Dataframe
  3. Base de datos multidimensional
  4. Beneficios de la visualización de datos

Categoría: