Plusieurs approches existent pour trouver le plus grand des trois nombres sous Unix, en utilisant différents outils. Voici quelques exemples :
1. Utiliser `awk` :
Il s’agit d’une solution concise et efficace :
```bash
awk '{print ($1> $2 ? ($1> $3 ? $1 :$3) :($2> $3 ? $2 :$3))}' <<<"10 5 15"
```
* `<<<"10 5 15"` fournit les trois nombres en entrée. Remplacez-les par vos nombres ou variables réels.
* Le script `awk` utilise des opérateurs ternaires imbriqués pour comparer efficacement les nombres.
2. Utilisation de `bash` (avec expansion arithmétique) :
C'est plus lisible mais légèrement moins concis que la solution `awk` :
```bash
num1=10
num2=5
num3=15
plus grand=$((num1> num2 ? num1 :num2))
plus grand=$((plus grand> num3 ? plus grand :num3))
écho $le plus grand
```
Ce script compare d'abord « num1 » et « num2 », en attribuant le plus grand au « plus grand ». Ensuite, il compare « plus grand » avec « num3 », mettant à jour « plus grand » si nécessaire.
3. Utilisation de `bc` (pour les nombres à virgule flottante) :
Si vous avez besoin de gérer des nombres à virgule flottante, `bc` (calculatrice de base) offre plus de précision que l'expansion arithmétique bash :
```bash
num1=10,5
num2=5.2
num3=15,8
plus grand=$(echo "$num1> $num2 ? $num1 :$num2" | bc -l | bc -l)
plus grand=$(echo "$plus grand> $num3 ? $plus grand :$num3" | bc -l)
écho $le plus grand
```
Cette approche utilise `bc -l` (avec l'option `-l` pour les fonctions de la bibliothèque mathématique) pour les comparaisons et les calculs en virgule flottante. La double utilisation de `bc` est de gérer efficacement le ternaire imbriqué car `bc` ne prend pas directement en charge les expressions ternaires imbriquées de la même manière que bash.
4. Fonction dans bash :
Pour la réutilisabilité, créez une fonction bash :
```bash
plus grand_de_trois() {
num1=$1
num2=$2
num3=$3
plus grand=$((num1> num2 ? num1 :num2))
plus grand=$((plus grand> num3 ? plus grand :num3))
écho $le plus grand
}
echo $(greatest_of_trois 10 20 15) # Sortie :20
```
Cette fonction prend trois arguments et renvoie le plus grand.
N'oubliez pas de remplacer les exemples de numéros par vos valeurs réelles. Choisissez la méthode qui correspond le mieux à vos besoins et à votre style de codage. La solution « awk » est généralement préférée pour sa brièveté et son efficacité si vous avez affaire à des nombres entiers, tandis que l'approche « bc » est nécessaire pour les nombres à virgule flottante. La fonction bash offre une meilleure organisation du code pour des scénarios plus complexes.
|