Introducción
Los bucles son uno de los conceptos fundamentales de los lenguajes de programación. Los bucles son útiles cuando desea ejecutar repetidamente una serie de comandos hasta que se cumpla una condición específica.
En lenguajes de secuencias de comandos como Bash, los bucles son útiles para automatizar tareas repetitivas. Hay 3 construcciones básicas de bucle en los scripts Bash, bucle for, bucle while y bucle hasta que.
Este tutorial explica los conceptos básicos del bucle hasta en Bash.
Bash hasta bucle
El bucle hasta se usa para ejecutar un conjunto dado de comandos siempre que la condición dada se evalúe como falsa.
El bucle Bash until toma la siguiente forma:
until [CONDITION]
do
[COMMANDS]
done
La condición se evalúa antes de ejecutar los comandos. Si la condición es falsa, se ejecutan los comandos. De lo contrario, si la condición se evalúa como verdadera, el bucle terminará y el control del programa se pasará al siguiente comando.
En el siguiente ejemplo, en cada iteración, el ciclo imprime el valor actual de la counter
e incrementa la variable en uno.
#!/bin/bash
counter=0
until [ $counter -gt 5 ]
do
echo Counter: $counter
((counter++))
done
El ciclo se desplaza hasta que la counter
tiene un valor mayor que cuatro. El script producirá el siguiente resultado:
Counter: 0
Counter: 1
Counter: 2
Counter: 3
Counter: 4
Counter: 5
Ejemplos
El siguiente script puede ser útil si el host de git tiene tiempo de inactividad y en lugar de escribir manualmente git pull
varias veces hasta que el host esté en línea, puede ejecutar el script una vez. Intentará extraer el repositorio hasta que se extraiga correctamente.
#!/bin/bash
until git pull &> /dev/null
do
echo "Waiting for the git host..."
sleep 1
done
echo -e "\nThe git repository is pulled."
El script imprimirá "Esperando el host de git..." y dormirá durante un segundo hasta que el host de git esté en línea. Una vez que se extrae el repositorio, "Se extrae el repositorio git". Se imprimirá.
Waiting for the git host...
Waiting for the git host...
Waiting for the git host...
The git repository is pulled.
Conclusión
while
y until
los bucles son similares entre sí, siendo la principal diferencia que el while
itera bucle hasta que la condición se evalúa como true
y los until
itera bucle hasta que la condición se evalúa como false
.