GNU/Linux >> Tutoriales Linux >  >> Linux

Golpear mientras se repite

Los bucles son uno de los conceptos fundamentales de los lenguajes de programación. Los bucles son útiles cuando desea ejecutar una serie de comandos varias veces hasta que se cumpla una condición particular.

En lenguajes de secuencias de comandos como Bash, los bucles son útiles para automatizar tareas repetitivas. Hay tres construcciones básicas de bucle en Bash scripting, for bucle, while bucle, y until bucle.

Este tutorial cubre los conceptos básicos de while bucles en Bash. También le mostraremos cómo usar el break y continue sentencias para alterar el flujo de un bucle.

Bash while Bucle #

El while loop se usa para ejecutar un conjunto dado de comandos un número desconocido de veces, siempre y cuando la condición dada se evalúe como verdadera.

El Bash while bucle toma la siguiente forma:

while [CONDITION]
do
  [COMMANDS]
done

El while La instrucción comienza con while palabra clave, seguida de la expresión condicional.

La condición se evalúa antes de ejecutar los comandos. Si la condición se evalúa como verdadera, se ejecutan los comandos. De lo contrario, si la condición se evalúa como falsa, el ciclo finaliza y el control del programa pasará al comando que sigue.

En el siguiente ejemplo, en cada iteración, el valor actual de la variable i se imprime y se incrementa en uno.

i=0

while [ $i -le 2 ]
do
  echo Number: $i
  ((i++))
done

Tue loop itera mientras i es menor o igual que dos. Producirá el siguiente resultado:

Number: 0
Number: 1
Number: 2

Infinito while Bucle #

Un ciclo infinito es un ciclo que se repite indefinidamente y nunca termina. Si la condición siempre se evalúa como verdadera, obtienes un ciclo infinito.

En el siguiente ejemplo, estamos usando el comando incorporado : para crear un bucle infinito. : siempre devuelve verdadero. También puede usar el true incorporado o cualquier otra declaración que siempre devuelve verdadero.

while :
do
  echo "Press <CTRL+C> to exit."
  sleep 1
done

El while el bucle anterior se ejecutará indefinidamente. Puedes terminar el ciclo presionando CTRL+C .

Aquí hay un equivalente de una sola línea:

while :; do echo 'Press <CTRL+C> to exit.'; sleep 1; done

Leer un archivo línea por línea #

Uno de los usos más comunes del while loop es leer un archivo, flujo de datos o variable línea por línea.

Aquí hay un ejemplo que lee el /etc/passwd archivo línea por línea e imprime cada línea:

file=/etc/passwd

while read -r line; do
  echo $line
done < "$file"

En lugar de controlar el while bucle con una condición, estamos usando la redirección de entrada (< "$file" ) para pasar un archivo a read comando, que controla el bucle. El while el bucle se ejecutará hasta que se lea la última línea.

Cuando lea un archivo línea por línea, siempre use read con el -r opción para evitar que la barra invertida actúe como un carácter de escape.

De forma predeterminada, read El comando recorta los espacios en blanco iniciales/posteriores (espacios y tabulaciones). Usa el IFS= opción antes de read para prevenir este comportamiento:

file=/etc/passwd

while IFS= read -r line; do
  echo $line
done < "$file"

break y continue Declaraciones #

El break y continue Las sentencias se pueden usar para controlar la ejecución del ciclo while.

break Declaración #

El break La instrucción finaliza el ciclo actual y pasa el control del programa al comando que sigue al ciclo terminado. Por lo general, se usa para terminar el bucle cuando se cumple una determinada condición.

En el siguiente ejemplo, la ejecución del bucle se interrumpirá una vez que el elemento iterado actual sea igual a 2 .

i=0

while [ $i -lt 5 ]
do
  echo "Number: $i"
  ((i++))
  if [[ "$i" == '2' ]]; then
    break
  fi
done

echo 'All Done!'
Number: 0
Number: 1
All Done!

continue Declaración #

El continue sale de la iteración actual de un bucle y pasa el control del programa a la siguiente iteración del bucle.

A continuación, una vez que el elemento iterado actual sea igual a 2 el continue hará que la ejecución regrese al principio del bucle y continúe con la siguiente iteración.

i=0

while [ $i -lt 5 ]
do
  ((i++))
  if [[ "$i" == '2' ]]; then
    continue
  fi
  echo "Number: $i"
done

echo 'All Done!'
Number: 1
Number: 3
Number: 4
Number: 5
All Done!

Conclusión #

El while loop ejecuta repetidamente un conjunto dado de comandos siempre que una condición sea verdadera.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. Scripts de Linux:3 procedimientos para bucles while en Bash

  2. Bash Beginner Series #8:Bucles en Bash

  3. Ejemplos de ciclos for y while de Bash

  4. Manteniéndote al tanto – Bash For, While, Until Ejemplos de bucles

  5. Bash para ejemplos de bucle

Golpe para bucle

Golpear hasta bucle

Bash romper y continuar

Secuencias de comandos de Bash:ciclo while y till explicado con ejemplos

El bucle while en los scripts de Shell

El Bash FOR Loop explicado y simplificado