En esta sección se encontrará con los bucles for, while y until.
El bucle for es distinto a los de otros lenguajes de programación. Básicamente, le permite iterar sobre una serie de `palabras' contenidas dentro de una cadena.
El bucle while ejecuta un trozo de códico si la expresión de control es verdadera, y sólo se para cuando es falsa (o se encuentra una interrupción explícita dentro del código en ejecución).
El bucle until es casi idéntico al bucle loop, excepto en que el código se ejecuta mientras la expresión de control se evalúe como falsa.
Si sospecha que while y until son demasiado parecidos, está en lo cierto.
#!/bin/bash
for i in $( ls ); do
echo item: $i
done
En la segunda línea declaramos i como la variable que recibirá los diferentes valores contenidos en $( ls ).
La tercera línea podría ser más larga o podría haber más líneas antes del done (4).
`done' (4) indica que el código que ha utilizado el valor de $i ha acabado e $i puede tomar el nuevo valor.
Este script no tiene mucho sentido, pero una manera más útil de usar el bucle for sería hacer que concordasen sólo ciertos ficheros en el ejemplo anterior.
Fiesh sugirió añadir esta forma de bucle. Es un bucle for más parecido al for de C/perl...
#!/bin/bash
for i in `seq 1 10`;
do
echo $i
done
#!/bin/bash
CONTADOR=0
while [ $CONTADOR -lt 10 ]; do
echo El contador es $CONTADOR
let CONTADOR=CONTADOR+1
done
Este script 'emula' la conocida (C, Pascal, perl, etc) estructura `for'.
#!/bin/bash
CONTADOR=20
until [ $CONTADOR -lt 10 ]; do
echo CONTADOR $CONTADOR
let CONTADOR-=1
done