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 09:21] 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 54: | Ligne 54: | ||
| <code>%=</code> | afectation du reste | | | <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]]** | ||
- | + | ==== écriture utile pour les boucles : ==== | |
- | ====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) :==== | + | |
- | <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 :==== | + | |
- | <code> | + | |
- | let "a = 5" | + | |
- | let "b = 10" | + | |
- | let "c = a *= 3" | + | |
- | let "d = a += 3" # valeur précédente de a conservée pour calculer d : 15+3 =18 | + | |
- | let "e = b /= 3" | + | |
- | 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 | + | |
- | i=1 | + | |
- | let "i += 7" | + | |
- | echo "i=$i" # réponse : i=8 | + | |
- | j=4 | + | |
- | let "j *= 5" | + | |
- | echo "j=$j" # réponse : j=20 | + | |
- | </code> | + | |
- | + | ||
- | ====4) é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 :** | ||