logo

Golpe para bucle

En este tema, entenderemos el uso de en bucle en scripts Bash.

Como cualquier otro lenguaje de programación, los scripts de shell bash también admiten 'bucles for' para realizar tareas repetitivas. Nos ayuda a iterar un conjunto particular de declaraciones sobre una serie de palabras en una cadena o elementos en una matriz. Por ejemplo, puede ejecutar el comando (o tarea) de UNIX muchas veces o simplemente leer y procesar la lista de comandos usando un 'bucle for'.

Sintaxis del bucle For

Podemos aplicar el 'bucle for' en el script bash de dos maneras. Una forma es 'for-in' y otra es la sintaxis estilo C. La siguiente es la sintaxis del 'bucle for' en las secuencias de comandos del shell bash:

 for variable in list do commands done 

O

 for (( expression1; expression2; expression3 )) do commands done 

Hay algunos puntos clave de la declaración 'for loop':

  • Cada bloque de 'bucle for' en bash comienza con la palabra clave 'do' seguida de los comandos dentro del bloque. La declaración 'for loop' se cierra con la palabra clave 'done'.
  • El número de veces que se iterará un 'bucle for' depende de las variables de la lista declaradas.
  • El bucle seleccionará un elemento de la lista y asignará el valor a una variable que se utilizará dentro del bucle.
  • Después de la ejecución de los comandos entre 'hacer' y 'hecho', el bucle vuelve a la parte superior, selecciona el siguiente elemento de la lista y repite todo el proceso.
  • La lista puede contener números o cadenas, etc. separados por espacios.

A continuación se ofrecen algunos de los ejemplos de 'bucles for' para ilustrar cómo funcionan:

Ejemplo básico de 'bucle For'

Guión de bash

 #!/bin/bash #This is the basic example of 'for loop'. learn='Start learning from Javatpoint.' for learn in $learn do echo $learn done echo 'Thank You.' 

Producción

Golpe para bucle

For Loop para leer un rango

Guión de bash

 #!/bin/bash #This is the basic example to print a series of numbers from 1 to 10. for num in {1..10} do echo $num done echo 'Series of numbers from 1 to 10.' 

Producción

Golpe para bucle

For Loop para leer un rango con incremento/decremento

Podemos aumentar o disminuir un valor específico agregando otros dos puntos (..) y el valor a seguir, por ejemplo, {START..END..INCREMENT}. Mira el siguiente ejemplo:

Para incremento

 #!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done 

Producción

Golpe para bucle

Para la disminución

 #!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done 

Producción

Golpe para bucle

For Loop para leer variables de matriz

Podemos usar 'bucle for' para iterar los valores de una matriz.

Linux ejecuta cmd

La sintaxis se puede definir como:

 array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done 

Producción

Para cada elemento de 'matriz', se ejecutan las declaraciones o el conjunto de comandos desde 'hacer' hasta 'hecho'. Se puede acceder a cada elemento como 'i' dentro del bucle para la iteración respectiva. Consulte el siguiente ejemplo que explica el uso del 'bucle for' para iterar sobre elementos de una matriz:

Guión de bash

 #!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done 

Producción

Golpe para bucle

For Loop para leer espacios en blanco en una cadena como separadores de palabras

La sintaxis se puede definir de la siguiente manera:

 #!/bin/bash for word in $str; do done 

Aquí, cadena se refiere a una cadena.

Las declaraciones desde 'hacer' hasta 'hecho' se ejecutan para cada 'palabra' de una cadena. Mira el siguiente ejemplo:

Guión de bash

 #!/bin/bash #For Loop to Read white spaces in String as word separators str='Let's start learning from Javatpoint.' for i in $str; do echo '$i' done 

Producción

Golpe para bucle

For Loop para leer cada línea en String como una palabra

La sintaxis se puede definir de la siguiente manera:

pitón reducir
 #!/bin/bash for word in '$str'; do done 

Aquí, las declaraciones desde 'hacer' hasta 'hecho' se ejecutan para cada 'línea' de una cadena. Mira el siguiente ejemplo:

Guión de bash

 #!/bin/bash #For Loop to Read each line in String as a word str='Let's start learning from Javatpoint.' for i in '$str'; do echo '$i' done 

Producción

Golpe para bucle

Nota: La única diferencia entre 'Bucle For para leer espacios en blanco en una cadena como separadores de palabras' y 'Bucle For para leer cada línea en una cadena como una palabra' son las comillas dobles alrededor de la variable de cadena.

For Loop para leer tres expresiones

La sintaxis de tres expresiones es la sintaxis más común de 'bucle for'. La primera expresión se refiere al proceso de inicialización, la segunda expresión se refiere a la terminación y la tercera expresión se refiere al incremento o decremento.

Consulte el siguiente ejemplo para imprimir de 1 a 10 números usando tres expresiones con un bucle for:

Guión de bash

 #!/bin/bash #For Loop to Read Three-expression for ((i=1; i<=10; i++)) do echo '$i' done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-8.webp" alt="Bash For Loop"> <h3>For Loop with a Break Statement</h3> <p>A &apos;break&apos; statement can be used inside &apos;for&apos; loop to terminate from the loop.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Table of 2 for table in {2..100..2} do echo $table if [ $table == 20 ]; then break fi done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-9.webp" alt="Bash For Loop"> <h3>For Loop with a Continue Statement</h3> <p>We can use the &apos;continue&apos; statement inside the &apos;for&apos; loop to skip any specific statement on a particular condition. It tells Bash to stop executing that particular iteration of the loop and process the next iteration.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;></pre></=10;>

Producción

Golpe para bucle

Bucle For con una declaración Continuar

Podemos usar la declaración 'continuar' dentro del bucle 'for' para omitir cualquier declaración específica en una condición particular. Le dice a Bash que deje de ejecutar esa iteración particular del bucle y procese la siguiente iteración.

Guión de bash

 #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;>

Producción

Golpe para bucle

Conclusión

En este tema, analizamos cómo utilizar la instrucción de bucle for en Bash para realizar tareas específicas.