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 [08/04/2014 15:02] Hypathie [Symboles dans les calculs mathématiques] |
doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques [04/06/2014 09:59] Hypathie [Symboles dans les calculs mathématiques] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ======Page man bash IV, Symboles dans les calculs mathématiques====== | + | ======Bash : les symboles dans les calculs====== |
- | * Objet : du tuto FIXME | + | * Objet : suite de la série de wiki visant à maîtriser bash via les différents caractère spéciaux. |
- | * Niveau requis : FIXME {{tag>débutant avisé}} | + | * Niveau requis : {{tag>débutant}} |
- | * Commentaires : //Contexte d'utilisation du sujet du tuto. // FIXME | + | * Commentaires : scripts |
* 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 à-placer}} - FIXME Pour choisir, voir les autres Tags possibles dans [[:atelier:#tags|l'Atelier]]. | + | * Suivi : {{tag>en-chantier à-tester }} |
* Création par **Hypathie** 08/04/2014 | * Création par **Hypathie** 08/04/2014 | ||
- | * Testé par <...> le <...> FIXME | + | * Testé par <Hypathie> le <Avril 2014> |
- | * Commentaires sur le forum : [[url | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | + | * 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 !)) |
- | **Nota :** | + | **RAPPEL DU PLAN DE LA SÉRIE : **\\ |
+ | |||
+ | 1) Intro I : [[atelier:chantier:bash-les-differents-caracteres-speciaux|Bash : Introduction]]\\ | ||
+ | |||
+ | 2) chap II : [[atelier:chantier:la-page-man-bash-les-caracteres-speciaux|Bash : Détail et caractères]]\\ | ||
+ | |||
+ | 3) chap III : [[atelier:chantier:la-page-man-bash-ii-les-operateurs-lexicographiques|Bash : les opérateurs lexicographiques]]\\ | ||
+ | |||
+ | 4) chap IV : [[atelier:chantier:page-man-bash-iii-les-operateurs-de-comparaison-numerique|Bash : les opérateurs de comparaison numérique]]\\ | ||
+ | |||
+ | 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 ===== | =====Symboles dans les calculs mathématiques ===== | ||
- | ====1) La construction :==== | ||
- | <code> | ||
- | ((...)) | ||
- | </code> permet une évaluation arithmétique. | ||
- | <code> | ||
- | #!/bin/bash | ||
- | a=$(( 5 + 3 )) | ||
- | echo $a # réponse 8 | ||
- | b=$(( 5 - 2 )) | ||
- | echo $b # réponse 3 | ||
- | c=$(( 6 * 2 )) | ||
- | echo $c # réponse 12 | ||
- | d=$(( 10 / 3 )) | ||
- | echo $d # réponse 3 | ||
- | e=$(( 10 % 3 )) | ||
- | echo $e # réponse 1 | ||
- | </code> | ||
- | ====2) avec la commande let (les signes mathématiques ont la même fonction) :==== | + | ====Opérateurs arithmétiques ==== |
- | <code> | + | |
- | #!/bin/bash | + | |
- | let "a = 5" | + | |
- | let "b = 10" | + | |
- | let "c = a + b" | + | |
- | let "e= a * b" | + | |
- | let "f= b / a" | + | |
- | let "g= b % a" | + | |
- | echo -e "$c \n$e \n$f \n$g" # ou /bin/echo "$c $e $f $g" | + | |
- | # réponse : | + | |
- | 15 | + | |
- | 50 | + | |
- | 2 | + | |
- | 0 | + | |
- | # bashisme de l'option -e pour forcer le retour à la ligne pour chaque appel de valeur $c $e $f $g | + | |
- | # réponse : 15 50 2 0 | + | |
- | </code> | + | |
- | ====3) écriture proche de c :==== | + | ^opérateurs ^opérations ^ |
- | <code> | + | | <code>+</code> | addition | |
- | let "a = 5" | + | | <code> -</code> | soustraction | |
- | let "b = 10" | + | | <code>/</code> | division (récup. le quotient) | |
- | let "c = a *= 3" | + | | <code>%</code> | modulo (récup. le reste) | |
- | let "d = a += 3" # valeur précédente de a conservée pour calculer d : 15+3 =18 | + | | <code>*</code> | multiplication | |
- | let "e = b /= 3" | + | | <code>** </code> | puissance (bash 2.02 et sup.) | |
- | let "f = b /= 3" # valeur précédente de b conservée pour calculer f : 3/3 =1 | + | |
- | echo "c=$c d=$d e=$e f=$f" # réponse : c=15 d=18 e=3 f=1 | + | **Pour les calculs complexes bash n'est pas adapté, il faut utiliser le langage bc.** |
- | i=1 | + | |
- | let "i += 7" | + | ====Opérateurs d'affectation arithmétique==== |
- | echo "i=$i" # réponse : i=8 | + | |
- | j=4 | + | ^opérateurs ^opérations ^ |
- | let "j *= 5" | + | | <code>=</code> | affectation arithmétique | |
- | echo "j=$j" # réponse : j=20 | + | | <code>+=</code> | incrémentation | |
- | </code> | + | | <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]]** | ||
+ | * **[[http://wiki.debian-facile.org/atelier:chantier:script-bash-variables-arguments-parametres?&#variables-numeriques-et-calculs|variables numériques et calculs]]** | ||
- | ====4) é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 avec conservation de la la valeur et idem pour pré-incrémentation :** | ||
Ligne 75: | Ligne 64: | ||
#!/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 de x est incrémenté ($x est donc égal à 21) | + | (( y = x++ )) # d'abord la valeur de x est conservée dans la valeur de y (donc $y= 20) puis la valeur |
- | # les espaces autour du signe = ne sont pas obligatoires | + | # de x est incrémenté ($x est donc égal à 21) |
- | echo "y=$y x=$x" # réponse : y=20 x=21 | + | # les espaces autour du signe = ne sont pas obligatoires |
+ | echo "y=$y x=$x" # réponse : y=20 x=21 | ||
</code> | </code> | ||
Ligne 83: | Ligne 73: | ||
#!/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 la valeur du x incrémentée | + | (( 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 | ||
# 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> | ||
Ligne 92: | Ligne 83: | ||
#!/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) puis la valeur de x est décrémenté ($x est donc égal à 19) | + | (( y = x-- )) # d'abord la valeur de x est conservée dans la valeur de y (donc $y= 20) |
- | # les espaces autour du signe = ne sont pas obligatoires | + | # puis la valeur de x est décrémenté ($x est donc égal à 19) |
+ | # 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> | ||
Ligne 100: | Ligne 92: | ||
#!/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 reçoit la valeur du x incrémentée (donc $y=19) | + | (( y = --x )) # d'abord la valeur de x est décrémentée ($x=19), puis la valeur de y |
- | # les espaces autour du signe = ne sont pas obligatoires | + | # reçoit la valeur du x incrémentée (donc $y=19) |
- | echo "y=$y x=$x" #réponse : y=19 x=19 | + | # les espaces autour du signe = ne sont pas obligatoires |
+ | echo "y=$y x=$x" # réponse : y=19 x=19 | ||
</code> | </code> | ||
- | |||
- | ===La suite, c'est ici : === | ||
- | [[atelier:chantier:page-man-bash-v-les-tableaux]] | ||
===tuto précédent :=== | ===tuto précédent :=== | ||
- | [[atelier:chantier:page-man-bash-iii-les-operateurs-de-comparaison-numerique?&#operateurs-de-comparaison-numerique]] | + | |
+ | [[atelier:chantier:page-man-bash-iii-les-operateurs-de-comparaison-numerique|Bash : les opérateurs de comparaison numérique]] | ||
+ | |||
+ | ===La suite, c'est ici : === | ||
+ | [[atelier:chantier:page-man-bash-v-les-tableaux|Bash : les tableaux]] |