Bash Scripting – Hasta bucle

El Bash tiene tres tipos de construcciones de bucle, a saber, para, mientras y hasta. El bucle Until se usa para iterar sobre un bloque de comandos hasta que la condición requerida sea falsa.

Sintaxis:

until [ condition ];
do
 block-of-statements
done

Aquí, el flujo de la sintaxis anterior será:

  • Comprueba la condición.
  • si la condición es falsa, ejecuta las sentencias y vuelve al paso 1.
  • Si la condición es verdadera, el control del programa pasa al siguiente comando del script.

Ejemplo:

#!/bin/bash
echo "until loop"
i=10
until [ $i == 1 ]
do
    echo "$i is not equal to 1";
    i=$((i-1))
done
echo "i value is $i"
echo "loop terminated"

Producción:

Bucle infinito usando hasta

En este ejemplo, el ciclo hasta es infinito, es decir, se ejecuta sin fin. Si la condición se establece hasta que el bucle sea siempre falso, el bucle se vuelve infinito.

Programa:

#!/bin/bash
## This is an infinite loop as the condition is set false.
condition=false
iteration_no=0
until $condition
do
    echo "Iteration no : $iteration_no"
    ((iteration_no++))
    sleep 1
done

Producción:

Hasta Bucle con pausa y continuar

Este ejemplo utiliza las sentencias break y continue para alterar el flujo del ciclo.

  • break : esta declaración finaliza el ciclo actual y pasa el control del programa a los siguientes comandos.
  • continuar: esta declaración finaliza la iteración actual del ciclo, saltándose todos los comandos restantes debajo de ella y comenzando la siguiente iteración.

Programa

#!/bin/bash
## In this program, the value of count is incremented continuously.
## If the value of count is equal to 25 then, the loop breaks
## If the value of count is a multiple of 5 then, the program 
## control moves to the next iteration without executing
## the following commands.
count=1

# this is an infinite loop
until false
do
    
    if [[ $count -eq 25 ]]
    then
    
        ##   terminates the loop.
        break
    elif [[ $count%5 -eq 0 ]]
    then
    
        ## terminates the current iteration.
        continue
    fi
    echo "$count"
    ((count++))
done

Producción:

Hasta bucle con condición única

Este es un ejemplo de un ciclo hasta que verifica solo una condición.

Programa

#!/bin/bash
# This program increments the value of 
# i until it is not equal to 5
i=0
until [[ $i -eq 5 ]]
do
    echo "$i"
    ((i++))
done

Producción:

Hasta bucle con múltiples condiciones

Hasta que el bucle se puede usar con múltiples condiciones. Podemos usar el operador and : ‘&&’ and or: ‘||’ operador para usar múltiples condiciones.

Programa

#!/bin/bash
##  This program increments the value of 
## n until the sum is less than 20
##   or the value of n is less than 15
n=1
sum=0
until [[ $n -gt 15  || $sum -gt 20 ]]
do
    sum=$(($sum + $n))
    echo "n = $n & sum of first n = $sum"
    ((n++))
done

Salida :

Estado de salida de un comando:

Sabemos que cada comando en el shell devuelve un estado de salida. El estado de salida de 0 muestra una ejecución exitosa, mientras que un valor distinto de cero muestra una ejecución fallida. El bucle till se ejecuta hasta que la condición devuelve un estado de salida distinto de cero.

Publicación traducida automáticamente

Artículo escrito por skaliappan1908 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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