Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shells:page-man-bash-iii-les-operateurs-de-comparaison-numerique [14/02/2023 16:25] agp91 [Comparaison numérique avec ((] |
doc:programmation:shells:page-man-bash-iii-les-operateurs-de-comparaison-numerique [14/02/2023 17:55] agp91 [Comparaison numérique avec [ et [[] |
||
---|---|---|---|
Ligne 28: | Ligne 28: | ||
*La commande **[** (ou **test**), | *La commande **[** (ou **test**), | ||
*Et la commande composée **<nowiki>[[</nowiki>**. | *Et la commande composée **<nowiki>[[</nowiki>**. | ||
+ | |||
+ | __Rappels :__ | ||
+ | * Une commande de test renvoie le code de retour true (0) lorsque le test réussi et false (1) lorsqu'il échoue. | ||
+ | * Le code retour d'une commande est mémorisé dans le paramètre spécial **$?**. | ||
+ | * L'opérateur **<nowiki>&&</nowiki>** exécute la commande suivante, si la commande précédente à renvoyée le code retour true (égale à 0). | ||
+ | * L'opérateur **<nowiki>||</nowiki>** exécute la commande suivante, si la commande précédente à renvoyée le code retour false (différent de 0). | ||
+ | |||
===== Comparaison numérique avec (( ===== | ===== Comparaison numérique avec (( ===== | ||
Ligne 208: | Ligne 215: | ||
Syntaxe : | Syntaxe : | ||
<code> | <code> | ||
- | [ expr opérateur expr ] | + | test expr1 OP expr2 |
- | [[ expr opérateur expr ]] | + | [ expr1 OP expr2 ] |
+ | [[ expr1 OP expr2 ]] | ||
+ | |||
+ | expr1 et expr2 sont sujets au développement des paramètres. | ||
+ | Avec la commande [[, expr1 et expr2 sont sujets à l’évaluation arithmétique (la commande [, ne le permet pas). | ||
+ | Avec OP l'un des opérateurs du tableau suivant. | ||
</code> | </code> | ||
- | | Opérateurs de comparaison des commande [ et <nowiki>[[</nowiki> || | + | | Opérateurs de comparaison des commandes [ et <nowiki>[[</nowiki> || |
^Caractères ^ Significations ^ | ^Caractères ^ Significations ^ | ||
|''-eq '' | est égal à | | |''-eq '' | est égal à | | ||
Ligne 222: | Ligne 234: | ||
- | ===Exemples dans le terminal === | + | ==== Exemples dans le terminal ==== |
<code user> | <code user> | ||
- | [ 25 -eq 20 ] | + | [ 25 -eq 20 ] # Teste si 25 est égale à 20 |
echo $? | echo $? | ||
</code> | </code> | ||
Ligne 230: | Ligne 243: | ||
1 | 1 | ||
</file> | </file> | ||
- | |||
- | == Ou encore : == | ||
<code user> | <code user> | ||
var1=17 | var1=17 | ||
var2=18 | var2=18 | ||
- | [ "$var1" -gt "$var2" ] | + | echo "$var1 est-il plus grand que $var2 : $([ $var1 -gt $var2 ]; echo $?)" |
- | echo $? | + | echo "$var1 est-il plus petit que $var2 : $([[ $var1 -lt $var2 ]]; echo $?)" |
- | </code> | + | echo "$var1 est-il différent de $var2 : $(test $var1 -ne $var2 ; echo $?)" |
- | == OU mieux : == | + | |
- | <code user> | + | |
- | test 100 -gt 99 && echo "vrai" || echo "faux" # retour : vrai | + | |
- | </code> | + | |
- | <code user> | + | |
- | test 100 -lt 99 && echo "vrai" || echo "faux" # retour : faux | + | |
- | </code> | + | |
- | <code user> | + | unset var1 var2 |
- | [ 5 -eq 5 ]; echo $? | + | |
</code> | </code> | ||
- | |||
<file config retour de la commande> | <file config retour de la commande> | ||
- | 0 | + | 17 est-il plus grand que 18 : 1 |
+ | 17 est-il plus petit que 18 : 0 | ||
+ | 17 est-il différent de 18 : 0 | ||
</file> | </file> | ||
- | >car l'expression est vraie | ||
- | === Exemple avec la commande test dans le terminal:=== | ||
- | <code user> | ||
- | test 17 -gt 11 ; echo $? | ||
- | </code> | ||
- | |||
- | <file config retour de la commande> | ||
- | 0 | ||
- | </file> | ||
- | De même : | ||
- | <code user> | ||
- | var1=17 ; var2=11 ; test "$var1" -gt "$var2" ; echo $? | ||
- | </code> | ||
- | |||
- | <file config retour de la commande> | ||
- | 0 | ||
- | </file> | ||
===Exemple avec les crochets dans un script:=== | ===Exemple avec les crochets dans un script:=== | ||
<code bash mon-script> | <code bash mon-script> |