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 02:06] agp91 [Les opérateurs logiques] |
doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques [26/02/2023 10:47] agp91 [Introduction] |
||
---|---|---|---|
Ligne 48: | Ligne 48: | ||
Elle est délaissée depuis la version 2.0 de bash au profit de **<nowiki>((...))</nowiki>**.\\ | Elle est délaissée depuis la version 2.0 de bash au profit de **<nowiki>((...))</nowiki>**.\\ | ||
\\ | \\ | ||
- | Pour des raisons de rétrocompatibilités, elle est toujours active dans nos bash modernes.\\ | ||
- | Mais n'est plus documentée dans la page du manuel.\\ | ||
\\ | \\ | ||
- | Viendra un jour où, **$[...]** ne sera plus. | + | <file config Extrait de la page du manuel de bash> |
+ | L'ancien format $[expression] est obsolète et sera supprimé dans les prochaines versions de bash. | ||
+ | </file> | ||
+ | \\ | ||
+ | Pour des raisons de rétrocompatibilités, elle est toujours active dans nos bash modernes.\\ | ||
+ | Mais viendra un jour où, **$[...]** ne sera plus. | ||
</note> | </note> | ||
Ligne 210: | Ligne 213: | ||
... Dans bash, c'est le contraire (voir la note plus bas). | ... 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 2 binaires. |
<note important>Les opérateurs logiques ne doivent être confondus avec les opérateurs bit-à-bit.</note> | <note important>Les opérateurs logiques ne doivent être confondus avec les opérateurs bit-à-bit.</note> | ||
Ligne 235: | Ligne 238: | ||
</code> | </code> | ||
- | <note>L'opérateur de négation logique s'utilise uniquement avec des parenthèses : **!(//expr//)**.</note> | + | <note>L'opérateur de négation logique **!**) s'utilise uniquement avec des parenthèses : **!(//expr//)**.</note> |
Les opérations logiques peuvent se suivre : | Les opérations logiques peuvent se suivre : | ||
Ligne 249: | Ligne 252: | ||
</code> | </code> | ||
- | Les opérateurs **<nowiki>&&</nowiki>** et **<nowiki>||</nowiki>**, étudient leur opérande de droite (//expr2//) que si cela est pertinent : | + | Les opérateurs **<nowiki>&&</nowiki>** et **<nowiki>||</nowiki>**, étudient l'opérande de droite (//expr2//) que si cela est pertinent : |
<code user> | <code user> | ||
Ligne 264: | Ligne 267: | ||
</code> | </code> | ||
- | <note>Nous avons placer l'affection **a=10** entre parenthèse **(a=10)** pour la protéger contre la priorités des opérateurs.\\ | + | <note>Nous avons placé l'affection **a=10** entre parenthèses **(a=10)**, pour la protéger contre la priorité des opérateurs.\\ |
\\ | \\ | ||
- | Si non, l'opérateur **<nowiki>&&</nowiki>** étant prioritaire à l'opérateur **=**, les opérations effectués sont **<nowiki>0 && a</nowiki>**, puis **=10**, ce qui va générer une erreur. | + | Si non, l'opérateur **<nowiki>&&</nowiki>** étant prioritaire à l'opérateur d'affectation **=**, les opérations effectuées deviennent **<nowiki>0 && a</nowiki>**, puis **=10**, ce qui génère une erreur. |
\\ | \\ | ||
<code user> | <code user> | ||
Ligne 277: | Ligne 280: | ||
</note> | </note> | ||
- | S'il n'est pas pertinent d'étudier l'opérande de droite et qu'il existe un autre opérateur, alors les opération se poursuive. | + | S'il n'est pas pertinent d'étudier l'opérande de droite et qu'il existe d'autre opérateurs, alors les opérations se poursuives. |
<code user> | <code user> | ||
a=0 | a=0 | ||
Ligne 298: | Ligne 302: | ||
Avec bash c'est l'inverse, **faux** est une valeur **non nulle** et **vrai** correspond à **0**.\\ | 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>** | + | Il en résulte que le code retour renvoyé est l'inverse du résultat des opérations logiques effectuées par **let** ou **<nowiki>((..))</nowiki>** |
<code user> | <code user> | ||
echo $(( !(0) )) | echo $(( !(0) )) |