9.5.5.- Uso de bucles

Los bucles son estructuras que le indican al script que realice la misma tarea repetidamente hasta que se cumpla o deje de cumplirse una determinada condición.  A continuación se muestra un bucle que reproduce todos los ficheros de audio .wav de un directorio:

script_ejemplo_12

Nota: aplay es un reproductor básico de ficheros de audio que funciona con los drivers de audio ALSA. En algunos sistemas, es posible que tengamos que utilizar play o algún otro comando en lugar de aplay.

Este bucle for se ejecuta una vez para cada elemento de la lista generada por ls *.wav. Cada elemento se asigna por turnos a la variable $d y después se pasa al comando aplay.

El comando seq puede ser útil para crear el bucle for, genera una lista de números que comienza por el primer argumento y que continúa hasta llegar al último. Por ejemplo, si escribimos seq 1 10, generaremos 10 líneas, cada una con un número entre 1 y 10. Podemos utilizar un bucle for que comience con for x in `seq 1 10`  para hacer que el bucle se ejecute 10 veces, incrementándose el valor de x en cada interacción. Si le pasamos sólo un parámetro a seq, interpretará el número como un punto final tomando como punto de partida el uno. Si le pasamos tres parámetros, los interpretará como el punto inicial, la cantidad del incremento y el punto final.

Otro tipo de bucle es el bucle while, que se ejecuta mientras la condición sea cierta. Su forma básica es la siguiente:

script_ejemplo_13

El bucle until es similar en su forma, con la diferencia de que la ejecución continua mientras la condición sea falsa, es decir, hasta que se vuelva verdadera. La sintaxis es:

until_sintaxis