GNU/Linux >> Tutoriales Linux >  >> Linux

Bash romper y continuar

Los bucles le permiten ejecutar uno o más comandos varias veces hasta que se cumpla una determinada condición. Sin embargo, a veces es posible que deba modificar el flujo del ciclo y finalizar el ciclo o solo la iteración actual.

En Bash, break y continue declaraciones le permite controlar la ejecución del bucle.

Bash 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. Se usa para salir de un for , while , until , o select loop.sLa sintaxis del break declaración toma la siguiente forma:

break [n]

[n] es un argumento opcional y debe ser mayor o igual a 1. Cuando [n] se proporciona, se sale del bucle envolvente n-ésimo. break 1 es equivalente a break .

Para entender mejor cómo usar el break declaración, echemos un vistazo a los siguientes ejemplos.

En el siguiente script, la ejecución de while el 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 -eq 2 ]]; then
    break
  fi
done

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

Aquí hay un ejemplo del uso de break instrucción dentro de for anidado bucles.

Cuando el argumento [n] no se da, break termina el bucle envolvente más interno. Los bucles exteriores no están terminados:

for i in {1..3}; do
  for j in {1..3}; do
    if [[ $j -eq 2 ]]; then
      break
    fi
    echo "j: $j"
  done
  echo "i: $i"
done

echo 'All Done!'
j: 1
i: 1
j: 1
i: 2
j: 1
i: 3
All Done!

Si desea salir del bucle externo, use break 2 . Argumento 2 le dice a break para terminar el segundo bucle envolvente:

for i in {1..3}; do
  for j in {1..3}; do
    if [[ $j -eq 2 ]]; then
      break 2
    fi
    echo "j: $j"
  done
  echo "i: $i"
done

echo 'All Done!'
j: 1
All Done!

Bash continue Declaración #

El continue La declaración salta los comandos restantes dentro del cuerpo del bucle adjunto para la iteración actual y pasa el control del programa a la siguiente iteración del bucle.

La sintaxis de continue declaración es la siguiente:

continue [n]

El [n] El argumento es opcional y puede ser mayor o igual a 1. Cuando [n] se da, se reanuda el bucle envolvente n-ésimo. continue 1 es equivalente a continue .

En el siguiente ejemplo, una vez que el elemento iterado actual es 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!

El siguiente script imprime números desde 1 hasta 50 que son divisibles por 9 .

Si un número no es divisible por 9 , el continue declaración salta el echo comando y pasar el control a la siguiente iteración del ciclo.

for i in {1..50}; do
  if [[ $(( $i % 9 )) -ne 0 ]]; then
    continue
  fi
  echo "Divisible by 9: $i"
done
Divisible by 9: 9
Divisible by 9: 18
Divisible by 9: 27
Divisible by 9: 36
Divisible by 9: 45

Conclusión #

Los bucles son uno de los conceptos fundamentales de los lenguajes de programación. En lenguajes de secuencias de comandos como Bash, los bucles son útiles para automatizar tareas repetitivas.

El break La instrucción se utiliza para salir del ciclo actual. El continue se utiliza para salir de la iteración actual de un bucle y comenzar la siguiente iteración.

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


Linux
  1. Bash For Loop Guía y ejemplos

  2. ¿Paralelizar un Bash For Loop?

  3. Bash para ejemplos de bucle

  4. bash de linux. para bucle y función, para sumar números

  5. Bash - Comando de fecha y espacio

Bash break:cómo salir de un bucle

Golpear mientras se repite

Golpe para bucle

Golpear hasta bucle

Comando de salida de Bash y códigos de salida

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