break con Bash

Comando break para Linux

El comando break de Linux se utiliza para salir de un bucle. Permite interrumpir la ejecución de un bucle (ya sea un bucle for, until o while) y continuar con la siguiente instrucción.

break

Podemos ver el funcionamiento del comando break alcanzando determinada condición en un bucle.

Vamos a crear un bucle while infinito que nos pedirá un número en cada iteración. Mediante la estructura de control if verificaremos que el número sea igual a cero. En caso de que introduzcamos un número cero se ejecutará el comando break.

#!/bin/bash

while true;
do 
    echo "Introduce número [0-9]: "
    read -r numero
    if [ "$numero" -eq 0 ]; then
        echo "Has pulsado salir"
        break
    fi
    echo "Has introducido: $numero"
done

No hemos colocado para el ejemplo ninguna línea de código fuera de la estructura de control while, pero en caso de existir se hubiese ejecutado después de pulsar el número cero.

Haciendo uso de break con Bash en un bucle infinito con while true

break para salir de varios bucles a la vez

Podemos usar el comando break de Linux para salir de varios bucles a la vez.

Este ejemplo consta de dos bucles for anidados, para salir de los dos a la vez utilizaremos break 2.

#!/bin/bash

vocales="a e i o u"

for numero in {1..3}; do
    for vocal in $vocales; do
        echo "$numero$vocal"
        if [ "$numero" -eq 2 ] && [ "$vocal" == "e" ]; then
            break 2
        fi
    done
done
Haciendo uso de break 2 con Bash en un bucle for anidado

Podemos hacer la prueba anidando tres estructuras for y modificando el break 2 por break 3.

#!/bin/bash

vocales="a e i o u"
consonantes="b c"

for numero in {1..3}; do
    for vocal in $vocales; do
        for consonante in $consonantes; do
            echo "$numero-$vocal-$consonante"
            if [ "$numero" -eq 2 ] && [ "$vocal" == "e" ]; then
                break 3
            fi
        done
    done
done

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *