[BASH] Existe t-il un boucle do while?

Résolu/Fermé
niernier Messages postés 239 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 1 mars 2014 - 14 janv. 2010 à 20:52
niernier Messages postés 239 Date d'inscription mercredi 8 octobre 2008 Statut Membre Dernière intervention 1 mars 2014 - 15 janv. 2010 à 06:46
Bonjour,
Je voudrais savoir si il existait en bash une boucle do while (comme en langage C) ou s'il existait un moyen de l'imiter.

En attente d'une réponse je vous remercie !
A voir également:

2 réponses

scriptiz Messages postés 1420 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 mai 2013 421
14 janv. 2010 à 21:16
Les boucles en bash :

boucle for
        #!/bin/bash
        for i in $( ls ); do
            echo item: $i
        done


boucle while
         #!/bin/bash 
         COUNTER=0
         while [  $COUNTER -lt 10 ]; do
             echo The counter is $COUNTER
             let COUNTER=COUNTER+1 
         done


boucle until
         #!/bin/bash 
         COUNTER=20
         until [  $COUNTER -lt 10 ]; do
             echo COUNTER $COUNTER
             let COUNTER-=1
         done


Il n'y a donc pas de boucle do ... while à proprement dit,
après pour faire une boucle do while il te suffit de t'assurer que tu passe une première fois dans ta boucle, la boucle until est pratique pour ça, bien que ce ne soit jamais que la négation de la while.
0
Salut,

On peut aussi faire la boucle for à la manière C ;-)

$ cat for.sh 
#!/bin/bash
for ((i=0 ; $i < 10; i++))
    do echo $i
done
$ sh for.sh 
0
1
2
3
4
5
6
7
8
9
0