30 Ejemplos de bucles Bash

30 Ejemplos de bucles Bash

Los bucles en Bash nos permiten repetir una acción varias veces mientras se cumple cierta condición. Son una herramienta fundamental en la programación de scripts en la línea de comandos y permiten automatizar tareas y ahorrar tiempo.

📋 Aquí podrás encontrar✍
  1. Tipos de bucles en Bash
    1. Bucle while
    2. Bucle for
    3. Bucle until
  2. Ejemplos de bucles Bash
    1. 1. Bucle while para imprimir los números del 1 al 10
    2. 2. Bucle for para imprimir los números del 1 al 10
    3. 3. Bucle until para imprimir los números del 1 al 5
    4. 4. Bucle while que imprime la tabla de multiplicar de un número dado
    5. 5. Bucle for que imprime la tabla de multiplicar de un número dado
    6. 6. Bucle until que imprime los números pares hasta el 20
    7. 7. Bucle while que cuenta el número de archivos en una carpeta
    8. 8. Bucle for que cuenta el número de archivos en una carpeta
    9. 9. Bucle until que imprime los números impares hasta el 15
    10. 10. Bucle while que busca los archivos con una extensión determinada en una carpeta
    11. 11. Bucle for que busca los archivos con una extensión determinada en una carpeta
    12. 12. Bucle until que busca los archivos con una extensión determinada en una carpeta
    13. 13. Bucle while para descargar varios archivos de internet
    14. 14. Bucle for para renombrar varios archivos
    15. 15. Bucle until para esperar a que un proceso termine
    16. 16. Bucle while para imprimir los valores de una tabla hash
    17. 17. Bucle for que imprime las líneas de un archivo junto con su número de línea
    18. 18. Bucle until que espera a que se monte un dispositivo USB
    19. 19. Bucle while que lee líneas de un archivo y las agrega a un array
    20. 20. Bucle for que itera sobre los elementos de un array
    21. 21. Bucle until que verifica si un servidor está en línea
    22. 22. Bucle while que escribe varios archivos
    23. 23. Bucle for que renombra archivos con un prefijo dado
    24. 24. Bucle until que espera a que se complete un proceso en segundo plano
    25. 25. Bucle while para sumar los números del 1 al 10
    26. 26. Bucle for que ejecuta una acción para cada archivo en una carpeta
    27. 27. Bucle until que espera a que se desmonte un dispositivo USB
    28. 28. Bucle while que escribe una serie de comandos en un archivo

Tipos de bucles en Bash

Bucle while

Este tipo de bucle se ejecuta mientras se cumple una condición determinada. La sintaxis es la siguiente:

while [condición]
do
acciones
done

Por ejemplo:

n=1
while [ $n -le 5 ]
do
echo "El valor de n es: $n"
n=$((n+1))
done

Este bucle imprimirá los números del 1 al 5.

Bucle for

Este tipo de bucle se repite un número determinado de veces. La sintaxis es la siguiente:

for variable in elemento1 elemento2 ... elementoN
do
acciones
done

Por ejemplo:

for i in 1 2 3 4 5
do
echo "El valor de i es: $i"
done

Este bucle imprimirá los números del 1 al 5.

Bucle until

Este tipo de bucle se ejecuta mientras una condición sea falsa. La sintaxis es similar a la de while:

until [condición]
do
acciones
done

Por ejemplo:

n=1
until [ $n -ge 5 ]
do
echo "El valor de n es: $n"
n=$((n+1))
done

Este bucle imprimirá los números del 1 al 4.

Ejemplos de bucles Bash

1. Bucle while para imprimir los números del 1 al 10

n=1
while [ $n -le 10 ]
do
echo $n
n=$((n+1))
done

2. Bucle for para imprimir los números del 1 al 10

for i in {1..10}
do
echo $i
done

3. Bucle until para imprimir los números del 1 al 5

n=1
until [ $n -gt 5 ]
do
echo $n
n=$((n+1))
done

4. Bucle while que imprime la tabla de multiplicar de un número dado

n=1
read -p "Ingresa un número: " num
while [ $n -le 10 ]
do
echo "$num x $n = $((num*n))"
n=$((n+1))
done

5. Bucle for que imprime la tabla de multiplicar de un número dado

read -p "Ingresa un número: " num
for i in {1..10}
do
echo "$num x $i = $((num*i))"
done

6. Bucle until que imprime los números pares hasta el 20

n=0
until [ $n -gt 20 ]
do
echo $n
n=$((n+2))
done

7. Bucle while que cuenta el número de archivos en una carpeta

num=0
while read line
do
((num++))
done <<< "$(ls /carpeta)" echo "Hay $num archivos en la carpeta /carpeta"

8. Bucle for que cuenta el número de archivos en una carpeta

num=0
for file in /carpeta/*
do
((num++))
done
echo "Hay $num archivos en la carpeta /carpeta"

9. Bucle until que imprime los números impares hasta el 15

n=1
until [ $n -gt 15 ]
do
echo $n
n=$((n+2))
done

10. Bucle while que busca los archivos con una extensión determinada en una carpeta

read -p "Ingresa la extensión de archivo a buscar: " ext
num=0
while read line
do
if [ "${line##*.}" == "$ext" ]
then
echo "$line tiene la extensión .$ext"
((num++))
fi
done <<< "$(ls /carpeta)" echo "Se encontraron $num archivos con la extensión .$ext"

11. Bucle for que busca los archivos con una extensión determinada en una carpeta

read -p "Ingresa la extensión de archivo a buscar: " ext
num=0
for file in /carpeta/*
do
if [ "${file##*.}" == "$ext" ]
then
echo "$file tiene la extensión .$ext"
((num++))
fi
done
echo "Se encontraron $num archivos con la extensión .$ext"

12. Bucle until que busca los archivos con una extensión determinada en una carpeta

read -p "Ingresa la extensión de archivo a buscar: " ext
num=0
until [ $num -eq $(ls /carpeta/*.$ext | wc -l) ]
do
((num++))
done
echo "Se encontraron $num archivos con la extensión .$ext"

13. Bucle while para descargar varios archivos de internet

n=1
while [ $n -lt 6 ]
do
wget "https://www.sitio.com/archivo$n.zip"
n=$((n+1))
done

14. Bucle for para renombrar varios archivos

for file in *.jpeg
do
mv "$file" "${file%.jpeg}.jpg"
done

15. Bucle until para esperar a que un proceso termine

n=0
until pgrep "proceso" > /dev/null || [ $n -eq 10 ]
do
sleep 1
((n++))
done
if [ $n -eq 10 ]
then
echo "El proceso no terminó después de 10 segundos."
fi

16. Bucle while para imprimir los valores de una tabla hash

declare -A hash=(
["llave1"]="valor1"
["llave2"]="valor2"
["llave3"]="valor3"
)
while read key value
do
echo "Hash[$key]=$value"
done < <(echo "${!hash[*]}" | tr ' ' 'n'; echo "${hash[*]}" | tr ' ' 'n')

17. Bucle for que imprime las líneas de un archivo junto con su número de línea

num=1
for line in $(cat archivo.txt)
do
echo "$num: $line"
((num++))
done

18. Bucle until que espera a que se monte un dispositivo USB

n=0
until grep -q "/dev/sdb" /proc/mounts || [ $n -eq 60 ]
do
sleep 1
((n++))
done
if [ $n -eq 60 ]
then
echo "El dispositivo no se montó después de 1 minuto."
fi

19. Bucle while que lee líneas de un archivo y las agrega a un array

i=0
while read line
do
array[i]="$line"
((i++))
done < archivo.txt

20. Bucle for que itera sobre los elementos de un array

declare -a array=("elemento1" "elemento2" "elemento3")
for elem in "${array[@]}"
do
echo $elem
done

21. Bucle until que verifica si un servidor está en línea

n=0
until ping -c1 servidor.com > /dev/null || [ $n -eq 10 ]
do
sleep 1
((n++))
done
if [ $n -eq 10 ]
then
echo "El servidor no está en línea después de 10 segundos."
fi

22. Bucle while que escribe varios archivos

n=1
while [ $n -lt 6 ]
do
touch archivo$n.txt
((n++))
done

23. Bucle for que renombra archivos con un prefijo dado

prefix="prefijo"
for file in *.txt
do
mv "$file" "$prefix$file"
done

24. Bucle until que espera a que se complete un proceso en segundo plano

n=0
until tail -n1 archivo.txt | grep "completado" > /dev/null || [ $n -eq 60 ]
do
sleep 1
((n++))
done
if [ $n -eq 60 ]
then
echo "El proceso no se completó después de 1 minuto."
fi

25. Bucle while para sumar los números del 1 al 10

n=1
suma=0
while [ $n -le 10 ]
do
suma=$((suma+n))
n=$((n+1))
done
echo "La suma de los números del 1 al 10 es: $suma"

26. Bucle for que ejecuta una acción para cada archivo en una carpeta

for file in /carpeta/*
do
[ -f "$file" ] && echo "$file es un archivo normal."
[ -d "$file" ] && echo "$file es un directorio."
done

27. Bucle until que espera a que se desmonte un dispositivo USB

n=0
until ! grep -q "/dev/sdb" /proc/mounts || [ $n -eq 60 ]
do
sleep 1
((n++))
done
if [ $n -eq 60 ]
then
echo "El dispositivo no se desmontó después de 1 minuto."
fi

28. Bucle while que escribe una serie de comandos en un archivo

n=1
while [ $n -

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza Cookies propias y de terceros de análisis para recopilar información con la finalidad de mejorar nuestros servicios, así como para el análisis de su navegación. Si continua navegando, se acepta el uso y si no lo desea puede configurar el navegador. CÓMO CONFIGURAR