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 28/06/2021, à 13:24

Tawal

Bash - Comparer 3 nombres (ou plus)

Hello,

Tout est dans le titre big_smile

Mais y a t-il  une astuce plus directe que des tests successifs ou une boucle ?
Pour l'instant, je fais comme ceci :

a=1; b=2 ; c=3
max=0
[ $a -gt $max ] && max=$a
[ $b -gt $max ] && max=$b
[ $c -gt $max ] && max=$c

En vous remerciant des astuces, méthodes ou autre syntaxe.


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#2 Le 28/06/2021, à 13:43

Watael

Re : Bash - Comparer 3 nombres (ou plus)

oui, une boucle... for. C'est ce qui est le plus pratique, puisque le nombre d'éléments peut varier.

par contre on peut améliorer le test :

(( max = i>max ? i : max ))

comment ça "pas lisible" ? j'ai mis des espaces quand même ! big_smile


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

Hors ligne

#3 Le 28/06/2021, à 14:07

Tawal

Re : Bash - Comparer 3 nombres (ou plus)

Merci de cette réponse sur la méthode et la syntaxe big_smile
C'est très lisible wink

Et pour faciliter l'itération, pourquoi ne pas se servir d'un tableau pour les valeurs à comparer.
Peut-être utile pour 10 valeurs ou plus, mais pour seulement 3 nombres ...

Edit : pour 3 nombres (avec nom de variables distincts) :

a=1 ;b=2 ;c=3
max=0
for i in $a $b $c
do
    ((max = i>max ? i : max ))
done

Dernière modification par Tawal (Le 28/06/2021, à 14:11)


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#4 Le 28/06/2021, à 14:45

Watael

Re : Bash - Comparer 3 nombres (ou plus)

ça dépend un peu du nombre de valeurs et/ou de la manière d'acquérir les valeurs.


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

Hors ligne

#5 Le 28/06/2021, à 14:57

Tawal

Re : Bash - Comparer 3 nombres (ou plus)

Oui, tout à fait.
On peut aisément imaginer que les valeurs à comparer viennent d'un fichier, par exemple.


Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne