<Anterior | Contenido | Siguiente>
Lectura de archivos con bucles
while y until pueden procesar la entrada estándar. Esto permite que los archivos se procesen con bucles while y until. En el siguiente ejemplo, mostraremos el contenido del archivo distrros.txt usado en capítulos anteriores:
#! / Bin / bash
# while-read: lee líneas de un archivo mientras lee la versión de distribución; hacer
printf "Distro:% s \ tVersion:% s \ tReleased:% s \ n" \
$ distro \
$ versión \
$ lanzamiento hecho <distros.txt
#! / Bin / bash
# while-read: lee líneas de un archivo mientras lee la versión de distribución; hacer
printf "Distro:% s \ tVersion:% s \ tReleased:% s \ n" \
$ distro \
$ versión \
$ lanzamiento hecho <distros.txt
Para redirigir un archivo al bucle, colocamos el operador de redirección después de la done declaración. El bucle usará read para ingresar los campos del archivo redirigido. los read El comando saldrá después de leer cada línea, con un estado de salida cero hasta que se alcance el final del archivo. En ese punto, saldrá con un estado de salida distinto de cero, terminando así el bucle. También es posible canalizar la entrada estándar en un bucle:
#! / Bin / bash
# while-read2: leer líneas de un archivo
ordenar -k 1,1 -k 2n distros.txt | mientras lee el lanzamiento de la versión de distribución; hacer printf "Distro:% s \ tVersion:% s \ tReleased:% s \ n" \
$ distro \
$ versión \
$ liberación
done
#! / Bin / bash
# while-read2: leer líneas de un archivo
ordenar -k 1,1 -k 2n distros.txt | mientras lee el lanzamiento de la versión de distribución; hacer printf "Distro:% s \ tVersion:% s \ tReleased:% s \ n" \
$ distro \
$ versión \
$ liberación
done
Aquí tomamos la salida de la sort comando y mostrar el flujo de texto. Sin embargo, es importante recordar que dado que una tubería ejecutará el bucle en una subcapa, cualquier variable creada o asignada dentro del bucle se perderá cuando el bucle termine.