GNU/Linux >> Tutoriales Linux >  >> Linux

Bash continue:Cómo reanudar un bucle

Introducción

El continue La declaración es un Bash incorporado que altera el flujo de los bucles de secuencias de comandos. El concepto no es exclusivo de Bash y aparece en otros lenguajes de programación.

La mejor manera de entender cómo Bash continue la declaración funciona a través de ejemplos prácticos.

Este tutorial muestra cómo usar Bash continue instrucción en scripts de Bash.

Requisitos previos

  • Una máquina con Linux o macOS.
  • Un editor de texto para los ejemplos.
  • Conocimiento básico de secuencias de comandos Bash.

La declaración de continuación de Bash

El Bash continue La instrucción reanuda la siguiente iteración en un bucle o instrucción en bucle.

La sintaxis es:

continue <integer>

El continue declaración sólo tiene significado cuando se aplica a los bucles. El valor entero indica la profundidad de continue declaración. De forma predeterminada, el número entero es 1 y escribir el número no es obligatorio. Aumente el número para reanudar una instrucción de bucle externo.

Usa un continue sentencia como una sentencia de control de bucle. Por ejemplo, continue La declaración ayuda a finalizar la iteración actual dentro de un bucle cuando se cumple una condición específica. Según el tipo de bucle, el programa se reanuda en la siguiente iteración o reinicia el bucle.

Bash continuar Ejemplos

A continuación, se incluyen ejemplos y explicaciones sobre cómo trabajar con la declaración de continuación en scripts de Bash.

Las siguientes construcciones de bucle principal muestran cómo funciona la instrucción:

  • El ciclo for continúa en la siguiente iteración cuando se combina con continuar.
  • La sentencia continue reinicia el while y until bucles.

El select El comando también aparece en los ejemplos, aunque no es una construcción de bucle principal. La sentencia funciona como un bucle y continue funciona para cualquier comando de bucle.

Uso de Bash Continue con un bucle for

Usa el continue instrucción dentro de un condicional if para controlar el flujo de un for :

#!/bin/bash

for i in {1..10}
do
	if [[ $i == '9' ]]
	then
		echo "Number $i!"
		continue
	fi
	echo "$i"
done
echo "Done!"

El código hace lo siguiente:

  • Línea 3 inicia el for condición de bucle, iterando la variable i de 1 a 10 .
  • Línea 5 comprueba la i valor. Cuando la variable es igual a 9 , el programa repite un mensaje y reinicia el bucle en la siguiente iteración (línea 3 ).
  • Línea 10 imprime el número en la consola solo cuando la declaración condicional en línea 5 es falso .

Ejecute el script para ver los resultados.

La salida imprime todos los números individuales en la consola. Cuando la condición en la línea 5 se evalúa como Verdadero ($i == '9' ), la consola repite un mensaje.

Uso de Bash Continue con bucle anidado

El continue sentencia funciona con bucles anidados así como. Por ejemplo, use continue 2 para reanudar un bucle exterior:

#!/bin/bash

for i in {1..5}
do
        for j in {1..5}
        do
                if [[ $i -eq $j ]]
                then
                        echo "$i = $j"
                        continue 2
                fi
                echo "$i =/= $j"
        done
done

echo "Done!"

El programa hace lo siguiente:

  • Línea 3 inicia el ciclo externo, incrementando la variable i de 1 a 5 .
  • Línea 5 inicia un bucle for interno, incrementando la variable j de 1 a 5 para cada i incremento.
  • Línea 7 comprueba si las variables i y j son iguales ($i -eq $j ). Si lo son, el continue 2 La instrucción reanuda el ciclo externo en la siguiente iteración. Sin embargo, si los valores son diferentes, el programa continúa como se esperaba.

Ejecute el script para ver el resultado del programa.

Cada vez que los dos valores son iguales, el primer número aumenta.

Uso de Bash Continue con un ciclo while

A continuación se muestra un script de Bash de ejemplo que utiliza <strong>continue</strong> declaración en un while bucle:

#!/bin/bash

i=0

while [[ $i -lt 11 ]] 
do
	if [[ "$i" == '9' ]]
	then
		echo "Number $i!"
		((i++))
		continue
	fi
	echo $i
	((i++))
done

Cada línea hace lo siguiente:

  • Línea 3 define una variable i y establece el valor en 0 .
  • Línea 5 inicia un while círculo. La condición final es cuando i es menor que 11 .
  • Línea 7 establece una verificación de condición usando un if declaración. Cuando la variable i es igual a 9 , el programa avanza a las líneas 9-11 . En todos los demás casos, el código salta a la línea 13 .
  • Líneas 9-11 imprime un mensaje en la consola, incrementa i y continue instrucción reanuda el ciclo en línea 5 .
  • Líneas 13 y 14 imprime la variable i a la consola e incrementarlo.

Para ver el resultado, ejecute el script desde la terminal.

El programa imprime todos los números en la consola. Debido a las declaraciones condicionales y continuas, se imprime un mensaje diferente para el número 9 .

Uso de Bash Continue con un bucle hasta

Combina continue declaración con un until bucle y proporciona una condición para cambiar el comportamiento del bucle para un cierto valor. Por ejemplo, pruebe el siguiente script:

#!/bin/bash

i=0

until [[ $i -gt 10  ]]
do
	if [[ $i -eq 9  ]]
	then
		echo "Number $i!"
		((i++))
		continue
	fi
	echo $i
	((i++))
done

El código incrementa una variable y se repite hasta que el valor llega a 10 . Cuando la variable es igual a 9 , el programa emite un mensaje diferente. El continue instrucción reinicia el until bucle y continúa como de costumbre.

Uso de Bash Continue con un bucle seleccionado

El select El comando es un caso particular porque no es un ciclo de secuencias de comandos de Bash principal. El comando crea menús que requieren la entrada del usuario. Usa el continue declaración para proporcionar una salida diferente basada en el valor seleccionado por el usuario.

Como ejemplo, pruebe el siguiente script de Bash:

#!/bin/bash

PS3="Choose a number: "

select i in {1..10}
do
	echo "Selected number: $i"
	if [[ $REPLY -eq 9 ]]
	then
		echo "Number $i!"
		continue
	fi
done

El guión consta de los siguientes elementos:

  • La PS3 en la línea 3 está el mensaje de visualización para select bucle.
  • Línea 5 define la condición del ciclo, listando números desde 1 a 10 . La variable i almacena la entrada del usuario.
  • Línea 7 repite la selección.
  • Línea 8 realiza un control. Si el valor de entrada del usuario es 9 , el programa imprime un mensaje en la consola y continúa con select bucle en la siguiente iteración.

Ejecute el script y pruebe diferentes valores para ver el resultado.

Para salir del programa, presione CTRL +C o agregue una instrucción de interrupción.


Linux
  1. Cómo escribir un bucle en Bash

  2. Cómo usar la declaración condicional if else en Bash Script

  3. ¿Cómo depurar un script Bash?

  4. ¿Cómo detectar Bash> =4.0?

  5. Cómo obtener el estado de salida de un bucle en bash

Declaración de caso Bash

Declaración de Bash if..else

Bash romper y continuar

Bash Scripting – Declaración de caso

Cómo trabajar con declaraciones de casos en scripts Bash

Cómo ejecutar un script Bash