En programación bash se utilizan tres tipos de bucles. El bucle while es uno de ellos. Al igual que otros bucles, el bucle while se utiliza para hacer tareas repetitivas. Como su palabra lo define en Bucle. En esta guía aprenderás las distintas formas de hacer bucles While con Bash.
En este artículo se muestra cómo se puede utilizar el bucle while en el script bash utilizando diferentes ejemplos.
Sintaxis del bucle while:
La base de la sintesis del bucle while es la siguiente.💻💻
while [ condición ]
do
comandos
done
El bloque inicial y final del bucle while están definidos por las palabras clave do y done en el script bash. La condición de terminación se define al principio del bucle. Abra un editor de texto en tu sistema linux para escribir un script bash y pruebe los siguientes ejemplos de bucles while, que te exponemos a continuación para comprenderlo en la practica.
Iteración del bucle durante un número fijo de veces
Vamos a crear un archivo bash llamado ejemplo1-while.sh que contenga el siguiente script.
n=1
while [ $n -le 5 ]
do
echo "Running $n time"
(( n++ ))
done
En este ejemplo, el bucle iterará durante 5 veces e imprimirá el texto que se define dentro del bucle. Lo podemos ver en el terminal su salida que aparecerá si ejecuta ejemplo1-while.sh.
Uso de la sentencia break en condicional
La sentencia break se utiliza para salir del bucle antes de tiempo basándose en una condición particular. Crea otro archivo bash llamado Ejemplo2-while.sh con el código que te muestro a continuación.
n=1
while [ $n -le 10 ]
do
if [ $n == 6 ]
then
echo "Fin del Bucle"
break
fi
echo "Position: $n"
(( n++ ))
done
En este ejemplo, el bucle está declarado para iterar 10 veces. De acuerdo con el script, terminará después de 6 iteraciones por la sentencia break. La siguiente salida aparecerá después de ejecutar el script.
Uso de la sentencia continue omitiendo un paso concreto
Una vez más creemos un nuevo archivo bash llamado ejemplo3-while.sh con el siguiente código en su interior.🤪🤪
n=0
while [ $n -le 5 ]
do
(( n++ ))
if [ $n == 3 ]
then
continue
fi
echo "Position: $n"
done
En este ejemplo, el bucle iterará 5 veces pero no imprimirá en nuestro terminal las 5 posiciones. Cuando el bucle itere por el tercer paso, se ejecutará la sentencia continue y el bucle saltará a la siguiente iteración sin imprimir el texto de la tercera posición. La siguiente salida en nuestro terminal aparecerá después de ejecutar el script ejemplo que hemos creado.😶🌫️😶🌫️
Creación de un bucle infinito
A veces, necesitamos declarar un bucle infinito para varios propósitos de programación. Crea un nuevo archivo bash (con extencion sh) llamado ejemplo4-while.sh y prueba este código del bucle infinito en tu terminal.😉
n=1
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
Si ejecutáis el archivo ejemplo4-while.sh en vuestro terminal veréis el ciclo del mismo en un bucle infinito.
[amazon box=»B073NTJHYY,B07XZG95K3,B07PVW7BMQ,B01DTLSQA2″ grid=»4″]
En este ultimo ejemplo de nuestra guía, no se establece ninguna condición para que el bucle termine. A este tipo de bucle se les llama bucle infinito. Lo único que la sentencia exit se utiliza para salir de dicho bucle infinito.
Este bucle se itera 10 veces y cuando el valor de la iteración se hace igual a 10, entonces la sentencia exit se ejecutará para salir del bucle infinito y no continuar hasta el infinito.
Conclusión final
En esta pequeña guía de hoy, nos hemos adentrado un poco en el mundo de la programación en bash, Se que a mucha gente esto no le interesa o simplemente no esta preparado para ello. Pero hemos pensado que la web debe de tener post para todo tipo de publico y se que mucha gente la agradecerá. Sin mas un cordial saludo Alohaaa a toros!!💪💪
El mejor Curso de Kali linux
No te he hablado nunca de ello pero he echo este curso de kali lunix y he aprendido un montón de cosas útiles en el manejo de sistemas linux, y además de seguridad y pentesting. Es económico y muy muy sencillo de hacer/aprender. si te interés te dejo el link.