Introducción
En las secuencias de comandos de Bash, un break
instrucción ayuda a proporcionar control dentro de las instrucciones de bucle. En lugar de esperar hasta la condición final, un break
La declaración ayuda a salir de un ciclo antes de que ocurra la condición final.
Las sentencias de bucle de control (break
y continuar) se combinan lógicamente con sentencias condicionales como if elif else para crear situaciones especiales dentro de los bucles.
Este tutorial te enseña a usar el break
declaración de manera eficiente en los bucles de secuencias de comandos de Bash.
Requisitos previos
- Una máquina con macOS o Linux.
- Conceptos básicos de secuencias de comandos de Bash (como escribir y ejecutar una secuencia de comandos).
- Un editor de texto para escribir los ejemplos de secuencias de comandos de Bash, como nano.
Declaración de ruptura de bash
El break
finaliza la iteración del bucle actual y sale del bucle. Cuando se combina con una condición, break
ayuda a proporcionar un método para salir del ciclo antes de que ocurra el caso final.
El break
de Bash Las sentencias siempre se aplican a los bucles.
La sintaxis es:
break <integer>
El valor entero es opcional y es 1
por defecto. El número define la profundidad de la break
para bucles anidados. Por lo tanto, para salir de un bucle for anidado, use break 2
.
Ejemplos de ruptura de bash
Los ejemplos a continuación demuestran cómo salir de diferentes tipos de bucle usando el break
declaración. Los ejemplos incluyen:
- El estándar
while
, para yuntil
bucles. - El
select
comando.
Cada ejemplo de secuencia de comandos de Bash a continuación viene con una explicación.
Salir de un bucle temporal
Usa el break
instrucción para salir de un while
bucle cuando se da cuenta de una condición particular. El siguiente script usa un break
dentro de un while
bucle:
#!/bin/bash
i=0
while [[ $i -lt 11 ]]
do
if [[ "$i" == '2' ]]
then
echo "Number $i!"
break
fi
echo $i
((i++))
done
echo "Done!"
Cada línea del script hace lo siguiente:
- Línea 3 define y establece la variable
i
a0
. - Línea 5 inicia el
while
círculo. La condición final es cuando la variable es menor que once ($i -lt 11
). - Línea 7 realiza una verificación usando un
if
declaración. Cuando la variable es igual a dos ("$i" == 2
), el programa sale delwhile
bucle usando Bashbreak
declaración en línea 10 . En ese caso, el código salta a la línea 16 . Si la variable es un número diferente, la secuencia de comandos continúa como se esperaba en línea 12 .
Ejecute el script para ver los resultados.
El programa enumera números hasta 2
y sale del script.
Uso de pausa interior para bucles
Un for
loop incrementa una variable automáticamente. Para agregar una declaración condicional y salir de for
bucle temprano, use un break
declaración. El siguiente código muestra un ejemplo del uso de un break
dentro de un for
bucle:
#!/bin/bash
for i in {1..10}
do
if [[ $i == '2' ]]
then
echo "Number $i!"
break
fi
echo "$i"
done
echo "Done!"
Cuando el valor entero es igual a dos ($i == '2'
), el programa imprime un mensaje y sale del for
bucle gracias al break
declaración.
Como resultado, ejecutar el script finaliza el programa cuando la variable i
llega a dos y salta a la última línea de código.
Salir de un bucle hasta
Un Bash until
loop es una de las tres construcciones fundamentales de loop. Agrega un break
declaración para controlar el flujo del programa y salir del bucle en una condición diferente.
A continuación se muestra un programa de ejemplo:
#!/bin/bash
i=0
until [[ $i -gt 10 ]]
do
if [[ $i -eq 2 ]]
then
echo "Number $i!"
break
fi
echo $i
((i++))
done
echo "Done!"
Aunque el until
el bucle contiene una condición final ($i -gt 10
), el cuerpo del ciclo contiene otra condición ($i -eq 2
). Dado que la segunda condición ocurre antes que la primera, el programa ingresa el if
el cuerpo de la instrucción, que contiene una instrucción Bash break para salir del bucle.
Ejecutar el script demuestra que el programa finaliza cuando la variable i
alcanza el valor 2
.
Usar la pausa dentro de un bucle seleccionado
El select
El comando crea menús y se comporta como un bucle infinito, aunque no es una de las construcciones de bucle principales. Para salir de select
elegantemente, haga un caso para el cual el programa finaliza y use break
para salir del bucle.
El siguiente código muestra un juego de adivinanzas de números textuales usando un select
declaración:
#!/bin/bash/
PS3="Guess my favorite number: "
select i in {1..10}
do
echo "Selected number: $i"
if [[ $REPLY -eq 2 ]]
then
echo "Correct! $i is my favorite. Thanks for playing!"
break
fi
echo "Not my favorite. Try again!"
done
El código hace lo siguiente:
- Línea 3 muestra el mensaje instructivo. El
select
declaración imprime este mensaje después de enumerar todas las opciones y después de cada suposición incorrecta. - Línea 5 inicia el
select
y define las opciones como números1
a10
. - Línea 8 comprueba si el número seleccionado es igual a
2
, que es la conjetura correcta. Si se aprueba la verificación, la declaración de ruptura de Bash ayuda a salir del ciclo y finaliza el juego.
Ejecute el script para jugar el juego de adivinanzas de números.
Ingrese diferentes valores para ver los resultados.
Para desarrollar aún más la secuencia de comandos, intente agregar un elif
declaración para verificar entradas fuera de rango o cambiarla a una declaración de caso para considerar varias situaciones de entrada.