#1 Le 28/06/2021, à 13:24
- Tawal
Bash - Comparer 3 nombres (ou plus)
Hello,
Tout est dans le titre
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 !
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
C'est très lisible
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