logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 [24/05/2014 11:58]
Hypathie [Bash : les symboles dans les calculs]
doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques [07/10/2015 13:09]
milou [Bash : les symboles dans les calculs]
Ligne 1: Ligne 1:
 ======Bash : les symboles dans les calculs====== ======Bash : les symboles dans les calculs======
  
-  * Objet : Ne plus confondre ​les différents ​caractères de BASH +  * Objet : suite de la série de wiki visant à maîtriser bash via les différents ​caractère spéciaux. 
-  * Niveau requis : {{tag>​débutant}}+  * Niveau requis : {{tag>​débutant ​avisé}}
   * Commentaires : scripts   * 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}} ​ +  * Suivi :   
-    * Création par **Hypathie** 08/​04/​2014 +    * Création par [[user>Hypathie]] le 08/​04/​2014 
-    * Testé par <​Hypathiele <Avril 2014> +    * Testé par [[user>Hypathie]]  ​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 !)) FIXME+  * 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 !))
  
-**Nota : suite du petit commentaire sur les caractères de la page man bash** 
  
-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]] 
 +  * [[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]] 
 +  * ;-) 
 +  * [[atelier:​chantier:​page-man-bash-v-les-tableaux|Les tableaux]] 
 +  * [[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]]
  
-2) chap II : [[atelier:​chantier:​la-page-man-bash-les-caracteres-speciaux|Bash : Détail et caractères]]\\ ​+Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
  
-3) chap III : [[atelier:​chantier:​la-page-man-bash-ii-les-operateurs-lexicographiques|Bash : les opérateurs lexicographiques]]\\ ​+=====Opérateurs arithmétiques =====
  
-4) chap IV : [[atelier:​chantier:​page-man-bash-iii-les-operateurs-de-comparaison-numerique|Bash : les opérateurs de comparaison numérique]]\\ ​+^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.''​) ​|
  
-5) chap V : C'​est ​ici !\\ +>Pour les calculs complexes bash n'​est ​pas adapté, il faut utiliser le langage ''​bc''​.
  
-6) chap VI : [[atelier:​chantier:​page-man-bash-v-les-tableaux|Bash : les tableaux]]\\ ​+=====Opérateurs d'​affectation arithmétique=====
  
-7) chap VII : [[atelier:​chantier:​man-bash-vi-les-caracteres-de-transformation-de-parametres]]\\ ​+^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             |
  
-8) chap VIII : [[atelier:​chantier:​bash-vii-globs-etendus-regex]]+**Voir ​:** 
 +  * **[[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]]**
  
-Contributeursles FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !+=====Opérateurs binaires ===== 
 +Ces opérateurs s'​utilisent sur des binaires(sur des 1 et des zéro).
  
-=====Symboles dans les calculs mathématiques ===== +^ Opérateurs ​      ^ significations ​                                            ^ 
-====1La construction :==== +| ''<<'' ​ | décalage d'un bit à gauche (=mutiplication par deux      | 
-<code> +| ''>​>''​ | décalage d'un bit à droite ​(=division par deux           | 
- ((...))  +| ''&​<'' ​  | "​et"​ logique  ​(ex : on une variable=1; si on fait &1 cela fait 1 (en binaire 1 et 1 1)| 
-</code> permet une évaluation arithmétique.  +| ''​|<'' ​ | ou (inclusifbinaire ​                                     | 
-<​code>​ +| ''​~'' ​  | non binaire ​                                               | 
-#​!/​bin/​bash +| ''​^'' ​  | XOR (ou exclusifbinaire ​                                 | 
-a=$(( 5 + 3 )) +
-echo $          # 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) :==== +<note
-<code+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 vus au sujet de la composition ​de commandes sur erreur ou sur réussite.
-#​!/​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  +
-+
-# 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 "= 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 ​==== +> ''&&'' ​ : exécution de la commande suivante si, et seulement si la précédente renvoie 0 
-  * **post-incrémentation ​avec conservation de la la valeur ​et idem pour pré-incrémentation :**+> ''​||'' ​ : exécution 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 
 +^_^ 
 +</​note>​ 
 +===== Écriture ​utile pour les boucles ​===== 
 +===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)**.\\ ​
 +
 +__**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 =====
  
-===La suite, c'est ici : === +[[doc:programmation:​shells:​page-man-bash-iii-les-operateurs-de-comparaison-numerique|Bash : les opérateurs de comparaison numérique]]
-[[atelier:chantier:​page-man-bash-v-les-tableaux]]+
  
-===tuto précédent :=== +=====La suite, c'est ici ===== 
-[[atelier:​chantier:​page-man-bash-iii-les-operateurs-de-comparaison-numerique?&#​operateurs-de-comparaison-numerique]]+[[atelier:​chantier:​page-man-bash-v-les-tableaux|Bash : les tableaux]]
doc/programmation/shells/page-man-bash-iv-symboles-dans-les-calculs-mathematiques.txt · Dernière modification: 26/04/2023 19:29 par bendia

Pied de page des forums

Propulsé par FluxBB