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-iv-symboles-dans-les-calculs-mathematiques [26/02/2023 01:37] agp91 [Les opérateurs logiques] |
doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques [26/02/2023 02:05] agp91 [Les opérateurs logiques] |
||
---|---|---|---|
Ligne 172: | Ligne 172: | ||
* **[[doc:programmation:shells:script-bash-variables-arguments-parametres?&#variables-numeriques-et-calculs|variables numériques et calculs]]** | * **[[doc:programmation:shells:script-bash-variables-arguments-parametres?&#variables-numeriques-et-calculs|variables numériques et calculs]]** | ||
- | ===== Les opérateurs relationnels ===== | + | ===== L'opérateur virgule ===== |
- | Les opérateurs relationnels permettent la comparaison entre deux epressions numériques.\\ | + | L'opérateur virgule, permet de séparer des opérations. |
- | Voir [[doc:programmation:shells:page-man-bash-iii-les-operateurs-de-comparaison-numerique#comparaison-numerique-avec|Comparaison numérique avec ((...))]] | + | |
+ | | L'opérateur virgule ||| | ||
+ | ^ Opérateur ^ Désignation ^ Résultat ^ | ||
+ | |Opérateur binaire ||| | ||
+ | | //expr1// **'',''** //expr2// | Virgule | Sépare les opération //expr1// et //expr2// pour les réaliser à la suite. | | ||
+ | |||
+ | Exemples : | ||
- | <note important> | ||
- | Le résultat des comparaisons des opérateurs relationnels retourne une valeur booléenne.\\ | ||
- | (**vrai** en cas de succès **faux** en cas d'échec).\\ | ||
- | \\ | ||
- | Les commandes **let** et **<nowiki>((..))</nowiki>** suivent le standard C.\\ | ||
- | Elles numérisent **faux** avec **0** et **vrai** avec une valeur **non nulle**.\\ | ||
- | \\ | ||
- | Avec bash c'est l'inverse, **faux** est une valeur **non nulle** et **vrai** correspond à **0**.\\ | ||
- | \\ | ||
- | Il en résulte que le code retour renvoyé est l'inverse du résultat des comparaisons effectuées par **let** ou **<nowiki>((..))</nowiki>** | ||
<code user> | <code user> | ||
- | echo $((24<42)) | + | echo $(( 5+5 , 10+5 , 21+21)) |
- | ((24<42)); echo $? | + | |
</code><code> | </code><code> | ||
- | 1 | + | 42 |
- | 0 | + | </code> |
+ | Seule la dernière opération est retournée. | ||
+ | |||
+ | C'est plus utile avec des affectations : | ||
+ | <code user> | ||
+ | echo $(( a=5+5 , b=10+5 , 21+21)) | ||
+ | echo a=$a b=$b | ||
+ | unset a b | ||
+ | </code><code> | ||
+ | 42 | ||
+ | a=10 b=15 | ||
</code> | </code> | ||
- | </note> | ||
===== Les opérateurs logiques ===== | ===== Les opérateurs logiques ===== | ||
Ligne 204: | Ligne 208: | ||
* Tout autres valeurs (positive ou négatives), souvent **1**, sont comprise comme **vrai**. | * Tout autres valeurs (positive ou négatives), souvent **1**, sont comprise comme **vrai**. | ||
- | ... Dans bash, c'est le contraire (voir la note plus haut). | + | ... Dans bash, c'est le contraire (voir la note plus bas). |
Trois opérateurs logiques sont disponibles : 1 unaire et deux binaires. | Trois opérateurs logiques sont disponibles : 1 unaire et deux binaires. | ||
Ligne 270: | Ligne 274: | ||
</code> | </code> | ||
- | Voir plus bas. | + | Voir plus bas [[doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques#priorites-des-operateurs|les priorités des opérateurs]]. |
</note> | </note> | ||
Ligne 288: | Ligne 292: | ||
<note important> | <note important> | ||
Le opération logiques retournent une valeur booléenne.\\ | Le opération logiques retournent une valeur booléenne.\\ | ||
- | (**vrai** en cas de succès **faux** en cas d'échec).\\ | ||
\\ | \\ | ||
- | Les commandes **let** et **<nowiki>((..))</nowiki>** suivent le standard C.\\ | + | Les commandes **let** et **<nowiki>((..))</nowiki>** suivant le standard C.\\ |
Elles numérisent **faux** avec **0** et **vrai** avec une valeur **non nulle**.\\ | Elles numérisent **faux** avec **0** et **vrai** avec une valeur **non nulle**.\\ | ||
\\ | \\ | ||
Ligne 299: | Ligne 302: | ||
echo $(( !(0) )) | echo $(( !(0) )) | ||
(( !(0) )); echo $? | (( !(0) )); echo $? | ||
+ | </code><code> | ||
+ | 1 | ||
+ | 0 | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | ==== Les opérateurs relationnels ===== | ||
+ | |||
+ | Les opérateurs relationnels permettent la comparaison entre deux epressions numériques.\\ | ||
+ | Voir [[doc:programmation:shells:page-man-bash-iii-les-operateurs-de-comparaison-numerique#comparaison-numerique-avec|Comparaison numérique avec ((...))]] | ||
+ | |||
+ | <note important> | ||
+ | Comme avec les opérateurs logiques, le résultat des comparaisons des opérateurs relationnels retourne une valeur booléenne.\\ | ||
+ | (**vrai** en cas de succès **faux** en cas d'échec).\\ | ||
+ | \\ | ||
+ | Le code de retour renvoyé est donc contraire au résultat des comparaisons effectuées par **let** ou **<nowiki>((..))</nowiki>** | ||
+ | <code user> | ||
+ | echo $((24<42)) | ||
+ | ((24<42)); echo $? | ||
</code><code> | </code><code> | ||
1 | 1 |