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 [04/06/2014 19:21] Hypathie [Symboles dans les calculs mathématiques] |
doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques [06/10/2015 21:18] milou [Tuto précédent] |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
* Suivi : {{tag>en-chantier à-tester }} | * Suivi : {{tag>en-chantier à-tester }} | ||
- | * Création par **Hypathie** 08/04/2014 | + | * Création par [[user>Hypathie]] 08/04/2014 |
- | * Testé par <Hypathie> le <Avril 2014> | + | * Testé par Hypathie le Avril 2014 |
- | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=87499#p87499 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | + | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=87499#p87499 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) |
- | **RAPPEL DU PLAN DE LA SÉRIE : **\\ | ||
- | 1) Intro I : [[atelier:chantier:bash-les-differents-caracteres-speciaux|Bash : Introduction]]\\ | + | * [[doc:programmation:shells:bash-les-differents-caracteres-speciaux|Vision d'ensemble]] |
- | + | * [[docs:programmation:shells:la-page-man-bash-les-caracteres-speciaux|Détail et caractères]] | |
- | 2) chap II : [[atelier:chantier:la-page-man-bash-les-caracteres-speciaux|Bash : Détail et caractères]]\\ | + | * [[doc:programmation:shells:la-page-man-bash-ii-les-operateurs-lexicographiques|Les opérateurs lexicographiques]] |
- | + | * [[doc:programmation:shells:page-man-bash-iii-les-operateurs-de-comparaison-numerique|Les opérateurs de comparaison numérique]] | |
- | 3) chap III : [[atelier:chantier:la-page-man-bash-ii-les-operateurs-lexicographiques|Bash : les opérateurs lexicographiques]]\\ | + | * ;-) |
- | + | * [[atelier:chantier:page-man-bash-v-les-tableaux|Les tableaux]] | |
- | 4) chap IV : [[atelier:chantier:page-man-bash-iii-les-operateurs-de-comparaison-numerique|Bash : les opérateurs de comparaison numérique]]\\ | + | * [[atelier:chantier:man-bash-vi-les-caracteres-de-transformation-de-parametres|Les caractères de transformation de parametres]] |
- | + | * [[atelier:chantier:bash-vii-globs-etendus-regex| Bash : Variables, globs étendus, ERb, ERe]] | |
- | 5) chap V : C'est ici !\\ | + | |
- | + | ||
- | 6) chap VI : [[atelier:chantier:page-man-bash-v-les-tableaux|Bash : les tableaux]]\\ | + | |
- | + | ||
- | 7) chap VII : [[atelier:chantier:man-bash-vi-les-caracteres-de-transformation-de-parametres|Bash : les caractères de transformation de parametres]]\\ | + | |
- | + | ||
- | 8) chap VIII : [[atelier:chantier:bash-vii-globs-etendus-regex|Bash : globs étendus et regex]] | + | |
Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
- | =====Symboles dans les calculs mathématiques ===== | + | =====Opérateurs arithmétiques ===== |
- | ====Opérateurs arithmétiques ==== | + | ^opérateurs ^opérations ^ |
+ | | ''<nowiki> +</nowiki> '' | addition | | ||
+ | | '' <nowiki>-</nowiki> '' | soustraction | | ||
+ | | '' <nowiki>/</nowiki> '' | division (récup. le quotient) | | ||
+ | | '' <nowiki>%</nowiki> '' | modulo (récup. le reste) | | ||
+ | | '' <nowiki>* </nowiki>'' | multiplication | | ||
+ | | '' <nowiki>**</nowiki> '' | puissance (''bash 2.02 et sup.'') | | ||
- | ^opérateurs ^opérations ^ | + | >Pour les calculs complexes bash n'est pas adapté, il faut utiliser le langage ''bc''. |
- | | <code>+</code> | addition | | + | |
- | | <code> -</code> | soustraction | | + | |
- | | <code>/</code> | division (récup. le quotient) | | + | |
- | | <code>%</code> | modulo (récup. le reste) | | + | |
- | | <code>*</code> | multiplication | | + | |
- | | <code>** </code> | puissance (bash 2.02 et sup.) | | + | |
- | **Pour les calculs complexes bash n'est pas adapté, il faut utiliser le langage bc.** | + | =====Opérateurs d'affectation arithmétique===== |
- | ====Opérateurs d'affectation arithmétique==== | + | ^opérateurs ^opérations ^ |
+ | | ''<nowiki>=</nowiki> '' | affectation arithmétique | | ||
+ | | ''<nowiki>+=</nowiki> '' | incrémentation | | ||
+ | | ''<nowiki>-=</nowiki> '' | décrémentation | | ||
+ | | ''<nowiki>/=</nowiki> '' | affectation par division | | ||
+ | | ''<nowiki>+=</nowiki> '' | affectation par multiplication | | ||
+ | | ''<nowiki>%=</nowiki> '' | afectation du reste | | ||
- | ^opérateurs ^opérations ^ | + | **Voir :** |
- | | <code>=</code> | affectation arithmétique | | + | |
- | | <code>+=</code> | incrémentation | | + | |
- | | <code>-=</code> | décrémentation | | + | |
- | | <code>/=</code> | affectation par division | | + | |
- | | <code>+=</code> | affectation par multiplication | | + | |
- | | <code>%=</code> | afectation du reste | | + | |
- | + | ||
- | **Voir :**\\ | + | |
* **[[atelier:chantier:script-bash-variables-arguments-parametres?&#typologie-des-variables|typologie de variables]]** | * **[[atelier:chantier:script-bash-variables-arguments-parametres?&#typologie-des-variables|typologie de variables]]** | ||
* **[[atelier:chantier:script-bash-variables-arguments-parametres?&#variables-numeriques-et-calculs|variables numériques et calculs]]** | * **[[atelier:chantier:script-bash-variables-arguments-parametres?&#variables-numeriques-et-calculs|variables numériques et calculs]]** | ||
- | ====Opérateurs binaires ==== | + | =====Opérateurs binaires ===== |
Ces opérateurs s'utilisent sur des binaires, (sur des 1 et des zéro). | Ces opérateurs s'utilisent sur des binaires, (sur des 1 et des zéro). | ||
^ Opérateurs ^ significations ^ | ^ Opérateurs ^ significations ^ | ||
- | | <code><< </code> | décalage d'un bit à gauche (=mutiplication par deux) | | + | | ''<<'' | décalage d'un bit à gauche (=mutiplication par deux) | |
- | | <code>>> </code> | décalage d'un bit à droite (=division par deux) | | + | | ''>>'' | décalage d'un bit à droite (=division par deux) | |
- | | <code>&</code> | ET logique (ex : on a une variable=1; si on fait &1 cela fait 1 (en binaire 1 et 1 = 1)| | + | | ''&<'' | "et" logique (ex : on a une variable=1; si on fait &1 cela fait 1 (en binaire 1 et 1 = 1)| |
- | | <code>|</code> | OU (inclusif) binaire | | + | | ''|<'' | ou (inclusif) binaire | |
- | | <code>~</code> | NON binaire | | + | | ''~'' | non binaire | |
- | | <code>^</code> | XOR (ou exclusif) binaire | | + | | ''^'' | XOR (ou exclusif) binaire | |
<note> | <note> | ||
- | REMARQUE | + | Le ''&<'' ( "et" binaire), le ''|<'' ("ou" binaire), et le ''~'' ("non" binaire)\\ peuvent aussi être remplacés (de façon équivalente) par les opérateurs logiques que l'on a vus au sujet de la composition de commandes sur erreur ou sur réussite. |
- | Les **"ET, OU et NON" logiques** peuvent aussi être remplacés (de façon équivalente) par les **opérateurs logiques** que l'on a vu pour la composition de commandes sur erreur et sur réussite. | + | |
- | <code> | + | > ''&&'' : exécution de la commande suivante si, et seulement si la précédente renvoie 0 |
- | && : exécution de la commande suivante si, et seulement si la précédente renvoie 0 | + | > ''||'' : exécution de la commande suivante si, et seulement si la précédente renvoie autre chose que 0 |
- | || : exécutuion de la commande suivante si, et seulement si la précédente renvoie autre chose que 0 | + | > ''!'' : inverse du retour d'une commande, c'est à dire un "non" logique |
- | ! : inverse du retour d'une commande, c'est à dire un "NON" logique | + | ^_^ |
- | </code> | + | |
</note> | </note> | ||
- | ==== Écriture utile pour les boucles : ==== | + | ===== Écriture utile pour les boucles ===== |
- | * **post-incrémentation avec conservation de la la valeur et idem pour pré-incrémentation :** | + | ===Post-incrémentation et pré-incrémentation :=== |
- | <code> | + | <code bash> |
#!/bin/bash | #!/bin/bash | ||
declare -i x=20 y # ici les signes = permettent une affection | declare -i x=20 y # ici les signes = permettent une affection | ||
(( y = x++ )) # d'abord la valeur de x est conservée dans la valeur de y (donc $y= 20) puis la valeur | (( y = x++ )) # d'abord la valeur de x est conservée dans la valeur de y (donc $y= 20) puis la valeur | ||
- | # de x est incrémenté ($x est donc égal à 21) | + | # de x est incrémentée ($x est donc égal à 21) |
# les espaces autour du signe = ne sont pas obligatoires | # les espaces autour du signe = ne sont pas obligatoires | ||
echo "y=$y x=$x" # réponse : y=20 x=21 | echo "y=$y x=$x" # réponse : y=20 x=21 | ||
</code> | </code> | ||
- | <code> | + | <code bash> |
#!/bin/bash | #!/bin/bash | ||
declare -i x=20 y | declare -i x=20 y | ||
(( y = ++x )) # d'abord la valeur de x est incrémentée puis la valeur de y reçoit | (( y = ++x )) # d'abord la valeur de x est incrémentée puis la valeur de y reçoit | ||
- | # la valeur du x incrémentée | + | # la valeur du x incrémenté |
# les espaces autour du signe = ne sont pas obligatoires | # les espaces autour du signe = ne sont pas obligatoires | ||
echo "y=$y x=$x" # réponse : y=21 x=21 | echo "y=$y x=$x" # réponse : y=21 x=21 | ||
</code> | </code> | ||
- | * **post-décrémentation avec conservation de la la valeur et idem pour pré-décrémentation :** | + | ===Post-décrémentation et pré-décrémentation :=== |
- | <code> | + | <code bash> |
#!/bin/bash | #!/bin/bash | ||
declare -i x=20 y | declare -i x=20 y | ||
(( y = x-- )) # d'abord la valeur de x est conservée dans la valeur de y (donc $y= 20) | (( y = x-- )) # d'abord la valeur de x est conservée dans la valeur de y (donc $y= 20) | ||
- | # puis la valeur de x est décrémenté ($x est donc égal à 19) | + | # puis la valeur de x est décrémentée ($x est donc égal à 19) |
# les espaces autour du signe = ne sont pas obligatoires | # les espaces autour du signe = ne sont pas obligatoires | ||
echo "y=$y x=$x" # réponse : y=20 x=19 | echo "y=$y x=$x" # réponse : y=20 x=19 | ||
</code> | </code> | ||
- | <code> | + | <code bash> |
#!/bin/bash | #!/bin/bash | ||
declare -i x=20 y | declare -i x=20 y | ||
(( y = --x )) # d'abord la valeur de x est décrémentée ($x=19), puis la valeur de y | (( y = --x )) # d'abord la valeur de x est décrémentée ($x=19), puis la valeur de y | ||
- | # reçoit la valeur du x incrémentée (donc $y=19) | + | # reçoit la valeur du x incrémenté (donc $y=19) |
# les espaces autour du signe = ne sont pas obligatoires | # les espaces autour du signe = ne sont pas obligatoires | ||
echo "y=$y x=$x" # réponse : y=19 x=19 | echo "y=$y x=$x" # réponse : y=19 x=19 | ||
</code> | </code> | ||
+ | <note tip> | ||
+ | En bref,\\ | ||
+ | __**Post-incrémentation/décrémentation**__ : Les signes d'incrémentation (**''++''**) ou de décrémentation (**''<nowiki>--</nowiki>''**) sont placés **après** une valeur à incrémentée (+1) ou à décrémenter (-1) ; cette valeur est conservée dans "y" puis elle est **incrémentée (+1)** ou **décrémentée (-1)**.\\ | ||
- | ===tuto précédent :=== | + | __**Pré-incrémentation/décrémentation**__ : Les signes d'incrémentation (**''++''**) ou de décrémentation (**''<nowiki>--</nowiki>''**) sont placés **avant** une valeur à incrémentée ou à décrémenter ; cette valeur est **incrémentée (+1)** ou **décrémentée (-1)** puis elle est conservée dans "y". |
+ | </note> | ||
+ | =====Tuto précédent ===== | ||
- | [[atelier:chantier:page-man-bash-iii-les-operateurs-de-comparaison-numerique|Bash : les opérateurs de comparaison numérique]] | + | [[doc:programmation:shells:page-man-bash-iii-les-operateurs-de-comparaison-numerique|Bash : les opérateurs de comparaison numérique]] |
- | ===La suite, c'est ici : === | + | =====La suite, c'est ici ===== |
[[atelier:chantier:page-man-bash-v-les-tableaux|Bash : les tableaux]] | [[atelier:chantier:page-man-bash-v-les-tableaux|Bash : les tableaux]] |