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