[bash] un problème avec while

Résolu
B@|-|@N Messages postés 386 Statut Membre -  
Ravachol Messages postés 568 Statut Membre -
Bonjour.

J'ai un problème avec la syntaxe de while.
Voici mon code :
nb_cdk=3; 
i=0;
while { $i < $nb_cdk }; do
        echo "salut bahan\n";
        i=${expr $i + 1};
done

En fait, je veux juste répéter salut Bahan 3 fois, soit tant que $i < 3. Cependant, ma syntaxe n'est pas bonne du tout... Quelqu'un s'y connait en syntaxe du while (en bash) ?

Merci d'avance.

Bahan

Close the world.||.txen eht nepO

5 réponses

  1. mali44 Messages postés 180 Statut Membre 3
     
    slt,
    bon je ne suis pas un pro, j'essaie aussi de m'y mettre:
    nb_cdk=3
    i=0
    while (( $i < $nb_cdk )) ;do
    echo "salut bahan\n";
    i=$((i + 1));
    done
    les (()) sont pour les tests arithmétiques
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Essaie ça :
    nb_cdk=3;
    i=0;
    while [ "$i" -lt "$nb_cdk" ];do
            echo "salut bahan\n"
            i=$(expr $i + 1)
    done
    
    ;-))
    0
  3. mali44 Messages postés 180 Statut Membre 3
     
    le mien fonctionne ;-)))
    0
  4. Ravachol Messages postés 568 Statut Membre 120
     
    Salut,
    Tiens, puisqu'on est dans les exercices de style ;-)
    declare -i nb_cdk
    nb_cdk=3
    declare -i i
    i=0
    while ((i<nb_cdk));
    do
      echo "salut bahan\n"
      let i=i+1
    done
    

    A++
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mali44 Messages postés 180 Statut Membre 3
     
    et bien puisque ces petits exercices passionent j'ai une question!

    je veux faire tourner un while autant de fois que le script à d'arguments
    comment définir la sortie de while?

    while [ -n $1 ] ;do
    shift
    done

    ne fonctionne pas et tourne en boucle qque soit le nbre de paramètre du script

    while [ $1 != '' ] ne fonctionne pas non plus?
    0
    1. Ravachol Messages postés 568 Statut Membre 120
       
      Comme ceci peut-être ?
      while [ -n "$1" ] ;do
      shift
      done
      

      A++
      0