next up previous contents
Next: while y until Up: Ciclos Previous: Ciclos   Índice General

for

La sintáxis es:

for variable in lista_de_valores
do
        accion_1
        accion_2
        ...
done

donde variable es una variable que toma cada uno de los valores en la lista dentro del cuerpo del ciclo. Por ejemplo:

for a in 1 2 3 lola lulu
do
        echo "cucamonga $i"
done
cucamonga 1
cucamonga 2
cucamonga 3
cucamonga lola
cucamonga lulu

Una aplicación típica es efecctuar una acción sobre una lista construída dinámicamente. Por ejemplo:

for i in `who | cut -d ' ' -f 1 | sort | uniq | tr '\n' ' '`
do
        write $1 << FIN
        Ya llegue!!!!
FIN
done

Con este pequeño programa le avisamos a todos los usuarios del sistema que ya entramos en sesión. Aclaremos: who nos dice quién está en sesión en ese momento, que además puede estar en varias sesiones simultáneas; cut nos da determinadas columnas de una columna o bien, como en éste caso de determinados campos utilizando las opciones -d para indicar el delimitador y -f para indicar que campo; con sort y uniq los ordenamos y unificamos como en el caso del corrector ortográfico; con tr cambiamos de uno por línea a todos en la misma línea (a la inversa que en el corrector) y con write enviamos el mensaje a la terminal del usuario.

La forma << delimitador nos es completamente nueva. Con ella le decimos al shell que copie como entrada todo lo que se encuentre hasta que la palabra que utilizamos como delimitador aparezca por si sola en una línea.


next up previous contents
Next: while y until Up: Ciclos Previous: Ciclos   Índice General
Ismael Olea 2001-04-21