Al igual que en cualquier otro lenguaje, los bucles son muy convenientes. Con Bash puedes usar bucles for, while y until.
Bucles For Aquí está la estructura de un bucle for:
for var in ${list}
do
your_commands
done
Ejemplo:
#!/bin/bash
users="devdojo bobby tony"
for user in ${users}
do
echo "${user}"
done
Un resumen rápido del ejemplo: Primero, especificamos una lista de usuarios y almacenamos el valor en una variable llamada $users. Después de eso, comenzamos nuestro bucle for con la palabra clave for. Luego, definimos una nueva variable que representará cada elemento de la lista que damos. En nuestro caso, definimos una variable llamada user, que representará cada usuario de la variable $users. Luego especificamos la palabra clave in seguida de nuestra lista a la que recorreremos. En la siguiente línea, usamos la palabra clave do, que indica qué haremos en cada iteración del bucle. Luego especificamos los comandos que queremos ejecutar. Finalmente, cerramos el bucle con la palabra clave done.
También puedes usar for para procesar una serie de números. Por ejemplo, aquí hay una forma de recorrer del 1 al 10:
#!/bin/bash
for num in {1..10}
do
echo ${num}
done
Bucles While
La estructura de un bucle while es bastante similar al bucle for:
while [ your_condition ]
do
your_conditions
done
Aquí hay un ejemplo de un bucle while:
#!/bin/bash
counter=1
while [[ $counter -le 10 ]]
do
echo $counter
((counter++))
done
Primero, especificamos una variable de contador y la establecemos en 1. Luego, dentro del bucle, aumentamos el contador utilizando esta declaración: ((counter++))
. De esa manera, nos aseguramos de que el bucle se ejecute solo 10 veces y no se ejecute indefinidamente. El bucle se completará tan pronto como el contador se convierta en 10, ya que eso es lo que hemos establecido como condición: while [[ $counter -le 10 ]]
.
Vamos a crear un script que le pregunte al usuario su nombre y no permita una entrada vacía:
#!/bin/bash
read -p "¿Cuál es tu nombre? " name
while [[ -z ${name} ]]
do
echo "Tu nombre no puede estar en blanco. ¡Por favor ingresa un nombre válido!"
read -p "¿Ingresa tu nombre de nuevo? " name
done
echo "¡Hola, ${name}!"
Ahora, si ejecutas lo anterior y simplemente presionas enter sin proporcionar entrada, el bucle se ejecutará nuevamente y te pedirá tu nombre una y otra vez hasta que realmente proporciones alguna entrada.
Bucles Until
La diferencia entre los bucles until y while es que el bucle until ejecutará los comandos dentro del bucle hasta que la condición se vuelva verdadera. Estructura:
until [ your_condition ]
do
your_commands
done
Ejemplo:
#!/bin/bash
count=1
until [ $count -gt 10 ]
do
echo $count
((count++))
done
Continuar y Romper
Al igual que en otros lenguajes, puedes usar continue y break en tus scripts de bash también:
continue
le dice a tu script bash que detenga la iteración actual del bucle y comience la siguiente iteración.break
le dice a tu script bash que termine el bucle de inmediato.
No hay comentarios.:
Publicar un comentario