<Précédent | Table des matières | Suivant>
Lecture de fichiers avec des boucles
tandis que et jusqu'à peut traiter l'entrée standard. Cela permet aux fichiers d'être traités avec les boucles while et until. Dans l'exemple suivant, nous afficherons le contenu du fichier distros.txt utilisé dans les chapitres précédents :
#! / Bin / bash
# while-read : lit les lignes d'un fichier lors de la lecture de la version de distribution ; faire
printf "Distro : %s\tVersion : %s\tPublié : %s\n" \
$distribution \
$ version \
$libération terminée < distributions.txt
#! / Bin / bash
# while-read : lit les lignes d'un fichier lors de la lecture de la version de distribution ; faire
printf "Distro : %s\tVersion : %s\tPublié : %s\n" \
$distribution \
$ version \
$libération terminée < distributions.txt
Pour rediriger un fichier vers la boucle, nous plaçons l'opérateur de redirection après le fait déclaration. La boucle utilisera lire pour saisir les champs du fichier redirigé. Les lire La commande se terminera après la lecture de chaque ligne, avec un état de sortie de zéro jusqu'à ce que la fin du fichier soit atteinte. À ce stade, il sortira avec un état de sortie différent de zéro, mettant ainsi fin à la boucle. Il est également possible de rediriger l'entrée standard dans une boucle :
#! / Bin / bash
# while-read2 : lit les lignes d'un fichier
sort -k 1,1 -k 2n distributions.txt | lors de la lecture de la version de distribution ; do printf "Distro : %s\tVersion : %s\tPublié : %s\n" \
$distribution \
$ version \
$libération
fait
#! / Bin / bash
# while-read2 : lit les lignes d'un fichier
sort -k 1,1 -k 2n distributions.txt | lors de la lecture de la version de distribution ; do printf "Distro : %s\tVersion : %s\tPublié : %s\n" \
$distribution \
$ version \
$libération
fait
Ici, nous prenons la sortie du sort commande et afficher le flux de texte. Cependant, il est important de se rappeler que puisqu'un tube exécutera la boucle dans un sous-shell, toutes les variables créées ou affectées dans la boucle seront perdues à la fin de la boucle.