Sintaxis del bucle while:
do
commands
done
El bloque de inicio y finalización del tiempo de bucle se definen por do y done palabras clave en la escritura del golpe. La condición de terminación se define al comienzo del bucle. Abra un editor de texto para escribir un script bash y pruebe los siguientes ejemplos de bucle while.
Ejemplo-1: iterar el bucle un número fijo de veces
Cree un archivo bash llamado while1.sh que contenga el siguiente script.
while [ $n -le 5 ]
do
echo “Running $n time”
(( n++ ))
done
En este ejemplo, el bucle se repetirá 5 veces e imprimirá el texto que se define dentro del bucle. La siguiente salida aparecerá si ejecuta while1.sh .
Ejemplo 2: uso de una declaración de interrupción para una salida condicional
La sentencia break se utiliza para salir del bucle antes de tiempo en función de una condición particular. Cree un nuevo archivo bash llamado while2.sh con el siguiente código.
while [ $n -le 10 ]
do
if [ $n== 6 ]
then
echo “terminated”
break
fi
echo “Position: $n“
(( n++ ))
done
En este ejemplo, se declara que el bucle se repite 10 veces. De acuerdo con el script, terminará después de 6 iteraciones para la declaración de interrupción. La siguiente salida aparecerá después de ejecutar el script.
Ejemplo 3: uso de la instrucción continue para omitir un paso en particular
Cree un nuevo archivo bash llamado while3.sh con el siguiente código.
while [ $n -le 5 ]
do
(( n++ ))
if [ $n== 3 ]
then
continue
fi
echo “Position: $n“
done
En este ejemplo, el bucle se repetirá 5 veces pero no imprimirá las 5 posiciones. Cuando el bucle se repetirá por 3ª vez, se ejecutará la instrucción continue y el bucle pasará a la siguiente iteración sin imprimir el texto de la 3ª posición. La siguiente salida aparecerá después de ejecutar el script.
Ejemplo 4: creación de bucle infinito
A veces, se requiere declarar un bucle infinito para varios propósitos de programación. Cree un nuevo archivo bash llamado while4.sh y pruebe el código del bucle infinito.
while :
do
printf “The current value of n=$nn“
if [ $n== 3 ]
then
echo “good”
elif [ $n== 5 ]
then
echo “bad”
elif [ $n== 7 ]
then
echo “ugly”
elif [ $n== 10 ]
then
exit 0
fi
((n++))
done
No se establece ninguna condición de terminación para el bucle en este ejemplo. Este tipo de bucle se llama bucle infinito. Aquí, la declaración de salida se usa para salir del bucle infinito. Por lo tanto, este ciclo se repetirá 10 veces y cuando el valor de la iteración sea igual a 10, la declaración de salida se ejecutará para salir del ciclo infinito.