La boucle while do… done exécute une séquence de commandes tant que la dernière commande de la “liste de commandes” est “vrai” (statut égal à zéro).
while liste de commandes do commande1 [ commande2 ?] done
La boucle until do… done exécute une séquence de commandes tant que la dernière commande de la “liste de commandes” est “faux” (statut différent de zéro).
until liste de commandes do commande1 [ commande2 ?] done
while read ligne do cat $ligne [ commande2 ?] done < ~/fichier.txt
#!/bin/sh # Script d'affichage d'informations sur les fichiers du répertoire courant # La commande "read" lit l'entrée standard. Mais cette entrée peut être redirigée d'un pipe # De plus, "read" renvoie "vrai" quand elle a lu et "faux" quand il n'y a plus rien à lire # On peut donc programmer une boucle de lecture pour traiter un flot d'informations ls | while read fic # Tant que le "read" peut lire des infos provenant du "ls" do # Évaluation du fichier traité if test -d "$fic" then echo "$fic est un répertoire" elif test -f "$fic" then echo "$fic est un fichier ordinaire" else echo "$fic est un fichier spécial ou lien symbolique ou pipe ou socket" fi done