Cómo usar el bucle while en Bash
-
Sintaxis:
whileBucle en Bash -
Ejemplo:
whileBucle en Bash -
Ejemplo: Un bucle infinito
whileen Bash -
Ejemplo:
whileBucle en Bash con la declaraciónbreak -
Ejemplo: bucle
whileen Bash con una declaracióncontinue
El bucle while es una de las estructuras de bucle más utilizadas en casi todos los lenguajes de programación. Se usa cuando no sabemos el número de veces que necesitamos ejecutar un bucle. Podemos especificar una condición para el bucle while, y las sentencias del bucle se ejecutan hasta que la condición se vuelve falsa.
Sintaxis: while Bucle en Bash
while [condition]
do
command-1
command-2
...
...
command-n
done
Aquí, la condition representa la condición que debe ser comprobada cada vez antes de ejecutar los comandos en el bucle. Si la condition es verdadera, ejecutamos las declaraciones en el bucle. Si la condition es falsa, salimos del bucle. Las sentencias desde el command-1 hasta el command-n son sentencias que se ejecutan en un bucle hasta que la condition se vuelve falsa.
Ejemplo: while Bucle en Bash
#!/bin/bash
num=5
while [ $num -ge 0 ]
do
echo $num
((num--))
done
Resultado:
5
4
3
2
1
0
Aquí, inicialmente, num se establece en 5. Seguimos imprimiendo num en la terminal y disminuyendo num en un bucle mientras el valor de num sea mayor o igual a 0.
Ejemplo: Un bucle infinito while en Bash
#!/bin/bash
while true
do
echo "This is an infinite while loop. Press CTRL + C to exit out of the loop."
sleep 0.5
done
Resultado:
This is an infinite while loop. Press CTRL + C to exit out of the loop.
This is an infinite while loop. Press CTRL + C to exit out of the loop.
This is an infinite while loop. Press CTRL + C to exit out of the loop.
^C
Es un bucle infinito while que imprime This is an infinite while loop. Press CTRL + C to exit out of the loop. cada 0,5 segundos. Para salir del bucle, podemos presionar CTRL+C.
Ejemplo: while Bucle en Bash con la declaración break
#!/bin/bash
num=5
while [ $num -ge 0 ]
do
echo $num
((num--))
if [[ "$num" == '3' ]]; then
echo "Exit out of loop due to break"
break
fi
done
Resultado:
5
4
Exit out of loop due to break
En el programa anterior, num se inicializa como 5. El bucle se ejecuta siempre y cuando num sea mayor o igual a 0. Pero como tenemos una declaración de break en el bucle cuando num es 3. Entonces, salimos del bucle como el valor de num se convierte en 3.
Ejemplo: bucle while en Bash con una declaración continue
#!/bin/bash
num=6
while [ $num -ge 1 ]
do
((num--))
if [[ "$num" == '3' ]]; then
echo "Ignore a step due to continue"
continue
fi
echo $num
done
Resultado:
5
4
Ignore a step due to continue
2
1
0
En el programa anterior, num se inicializa como 6. En el bucle, primero disminuimos num en 1 y luego imprimimos el último valor de num. El bucle se ejecuta siempre y cuando el valor num sea mayor o igual a 1. Cuando num se convierte en 3, el script no imprime el valor de num ya que tenemos la sentencia continue cuando num es 3.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn