Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/09/2025, à 15:45

iznobe

[ resolu ] boucle for decompte

Bonjour , j' essai de faire une decompte de 5 a 0 avec une boucle for et une variable initialisée pour la boucle , je comprends pas pourquoi avec ce code :

!/bin/bash
initArrosageOK=5
for ((initArrosageOK; initArrosageOK < 0; initArrosageOK--)); do
        echo "$initArrosageOK"
done

je n' obtiens pas :

5
4
3
2
1
0

bon , ba forcément comme ca marche à l' envers faut inverser le sens de comparaison ...

!/bin/bash
initArrosageOK=5
for ((initArrosageOK; initArrosageOK > 0; initArrosageOK--)); do
        echo "$initArrosageOK"
done

Et là ca marche , désolé pour le dérangement tongue

Dernière modification par iznobe (Le 05/09/2025, à 15:48)

En ligne

#2 Le 05/09/2025, à 15:46

sputnick

Re : [ resolu ] boucle for decompte

Tu dois faire comme c'est prévu par l'outil:

for ((initArrosageOK=5; initArrosageOK > -1; initArrosageOK--)); do
        echo "$initArrosageOK"
done

Dernière modification par sputnick (Le 05/09/2025, à 15:49)


On ne voit bien qu'avec le cœur. L'essentiel est invisible pour les yeux. Antoine de Saint-Exupery
https://sputnick.fr

Hors ligne

#3 Le 05/09/2025, à 18:00

Watael

Re : [ resolu ] boucle for decompte

for i in {5..0}; do echo $i; done

big_smile

et on peut donner l'incrément :

for i in {5..0..2}; do echo $i; done
5
3
1

Dernière modification par Watael (Le 05/09/2025, à 18:04)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 05/09/2025, à 18:15

iznobe

Re : [ resolu ] boucle for decompte

Salut Watael , ba oui mais non ... , j ' avoue que ma description peut induire en erreur , mais pas le code tongue
si j' ai mis une variable , c ' est parce qu ' elle varie tongue et elle peut valoir autre chose que 5 du coup big_smile

et puis je n ' ai pas un simple echo ,  j' ai d' autres traitement à faire dans cette boucle , mais la forme raccourcie est toujours séduisante wink

Et pareil pour @sputnick

Mais merci de votre aide. ca marche très bien en initialisant la variable à l' extérieur du " for " , et c' est le but ( secondaire ) recherché .

Dernière modification par iznobe (Le 05/09/2025, à 18:23)

En ligne

#5 Le 06/09/2025, à 01:17

sputnick

Re : [ resolu ] boucle for decompte

Dans ce cas, je recommande:

initArrosageOK=5
for ((i=initArrosageOK; i > -1; i--)); do
        echo "$i"
done

On ne voit bien qu'avec le cœur. L'essentiel est invisible pour les yeux. Antoine de Saint-Exupery
https://sputnick.fr

Hors ligne

#6 Le 06/09/2025, à 13:04

iznobe

Re : [ resolu ] boucle for decompte

Salut , oui , comme ça , ça le fait et c' est plus court wink
Merci .

En ligne

#7 Le 06/09/2025, à 14:08

iznobe

Re : [ resolu ] boucle for decompte

Bon et bien en fait non , ca ne va pas car " initArrosageOK " n' est pas décrémenté ...
Pour le moment je fais donc :

initArrosageOK=5
((initArrosageOK+=1))
        for ((i=0; i < initArrosageOK; i++)) ;do
                initArrosageOK--
                echo "$i"
        done

Mais finalement ; c ' est pas mieux que la solution du message 1 , car je n' ai pas besoin de " i " ...

Dernière modification par iznobe (Le 06/09/2025, à 14:09)

En ligne