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:script-bash-variables-arguments-parametres [10/07/2014 12:35] Hypathie [Récupérer la longueur d'une valeur de variable] |
doc:programmation:shells:script-bash-variables-arguments-parametres [05/01/2015 10:53] smolski [Variables numériques et calculs] |
||
---|---|---|---|
Ligne 8: | Ligne 8: | ||
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=92203#p92203| 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=92203#p92203| Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | **Nota : Les autres wiki :** | ||
* [[atelier:chantier:debuter-avec-les-scripts-shell-bash]] | * [[atelier:chantier:debuter-avec-les-scripts-shell-bash]] | ||
+ | * ;-) | ||
* [[atelier:chantier:script-bash-detail-sur-les-parametres-et-les-boucles|script bash : modification de variable et de paramètre]] | * [[atelier:chantier:script-bash-detail-sur-les-parametres-et-les-boucles|script bash : modification de variable et de paramètre]] | ||
* [[atelier:chantier:script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]] | * [[atelier:chantier:script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]] | ||
* [[atelier:chantier:script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]] | * [[atelier:chantier:script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]] | ||
- | * [[atelier:chantier:script-bash-les-tableaux|script-bash-les-tableaux]] | + | * [[doc:programmation:bash:script:tableaux|script-bash-les-tableaux]] |
- | * [[atelier:chantier:script-bash-les-fonctions|script-bash-les-fonctions]] | + | * [[doc:programmation:bash:script:fonction|script-bash-les-fonctions]] |
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 ! | ||
Ligne 549: | Ligne 550: | ||
====declare et typeset ==== | ====declare et typeset ==== | ||
- | ^ commandes ^options ^ | + | ^ commandes ^options ^ |
- | |declare/typeset |-r lecture seule | | + | |declare/typeset |''-r'' : lecture seule | |
- | |declare/typeset |-i entier | | + | |declare/typeset |''-i'' : entier | |
- | |declare/typeset |-a tableau (array) | | + | |declare/typeset |''-a'' tableau (array) | |
- | |declare/typeset |-f fonction(s) | | + | |declare/typeset |''-f'' : fonction(s) | |
- | |declare/typeset |-x export | | + | |declare/typeset |''-x'' : export | |
- | |declare/typeset |-x var=$value | | + | |declare/typeset |''-x'' : ''var=$valeur'' | |
Voir : [[http://abs.traduc.org/abs-5.1-fr/ch09s04.html|Guide avancé d'écriture des scripts Bash: 9.4. Typer des variables : declare ou typeset]] | Voir : [[http://abs.traduc.org/abs-5.1-fr/ch09s04.html|Guide avancé d'écriture des scripts Bash: 9.4. Typer des variables : declare ou typeset]] | ||
- | ===Remarques sur la commande declare -i et les calculs === | + | ===Remarques sur la commande "declare" et les calculs === |
<note important> | <note important> | ||
**Méthode non POSIX**\\ | **Méthode non POSIX**\\ | ||
- | * La valeur d'une variable peut une expression arithmétique, pour initialiser une variable de type entier on utilise l'option -i de la commande declare : declare -i nom[=expression] nom[=expression] ... | + | * La valeur d'une variable peut une expression arithmétique, pour initialiser une variable de type entier on utilise l'option ''-i'' de la commande ''declare'' :\\ ''declare -i nom[=expression] nom[=expression] ...'' |
<code bash> | <code bash> | ||
Ligne 575: | Ligne 576: | ||
</code> | </code> | ||
- | * Pour que la valeur d'une variable ne soit pas accidentellement modifier, il faut ajouter l'attribut -r. | + | * Pour que la valeur d'une variable ne soit pas accidentellement modifier, il faut ajouter l'attribut ''-r''. |
<code bash> | <code bash> | ||
Ligne 583: | Ligne 584: | ||
echo $(($a+$b)) | echo $(($a+$b)) | ||
</code> | </code> | ||
- | retour | + | |
<code> | <code> | ||
80 | 80 | ||
</code> | </code> | ||
- | **Méthode POSIX : Les commandes let et ( ( ... ) ) permettent de typer les variables pour effectuer des calculs sur les variables (synonyme de declare -i).** | + | **Méthode POSIX** : Les commandes ''let'' et ''<nowiki>(( ... ))</nowiki>'' permettent de typer les variables pour effectuer des calculs sur les variables (synonyme de ''declare -i''). |
</note> | </note> | ||
Ligne 595: | Ligne 596: | ||
==== Les variables typées pour les calculs : let ou (( ... )) ==== | ==== Les variables typées pour les calculs : let ou (( ... )) ==== | ||
- | **Voir : [[atelier:chantier:page-man-bash-iv-symboles-dans-les-calculs-mathematiques?&#operateurs-arithmetiques|les opérateurs arithmétiques]]** | + | Voir : [[atelier:chantier:page-man-bash-iv-symboles-dans-les-calculs-mathematiques?&#operateurs-arithmetiques|les opérateurs arithmétiques]] |
- | ===syntaxe=== | + | ===Syntaxe=== |
<code> | <code> | ||
let 'var = 5 + 5' | let 'var = 5 + 5' | ||
Ligne 602: | Ligne 603: | ||
$(( 5 * 3 )) | $(( 5 * 3 )) | ||
</code> | </code> | ||
- | === exemples=== | + | === Exemples=== |
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 623: | Ligne 624: | ||
echo $(( $var2 % $var1 )) | echo $(( $var2 % $var1 )) | ||
</code> | </code> | ||
- | Retour | ||
<code> | <code> | ||
12 | 12 | ||
Ligne 636: | Ligne 636: | ||
==== L'affectation arthmétique==== | ==== L'affectation arthmétique==== | ||
- | **Voir [[atelier:chantier:page-man-bash-iv-symboles-dans-les-calculs-mathematiques?&#operateurs-d-affectation-arithmetique| les opérateurs d'affectation arithmétique]]** | + | Voir [[atelier:chantier:page-man-bash-iv-symboles-dans-les-calculs-mathematiques?&#operateurs-d-affectation-arithmetique| les opérateurs d'affectation arithmétique]] |
+ | |||
+ | Cela consiste à affecter à une variable le résultat d'un calcul arithmétique, par la __constante__ (donc avec ''let'') qu'on lui a donné.\\ | ||
+ | Soit une variable var de valeur x, si l'on fait ''var +=2'' alors la variable var sera ''x + 2''.\\ | ||
- | Cela consiste à affecter à une variable le résultat d'un calcul arithmétique, par la **constante** (donc avec let) qu'on lui a donné.\\ | + | >cela permet de faire des incrémentation par autre chose que 1.) |
- | Soit une variable var de valeur x, si l'on fait **var +=2** alors la variable var sera **x + 2**.\\ | + | >Il en va de même pour les autres opérateurs.\\ |
- | (cela permet de faire des incrémentation par autre chose que 1 : voir plus incrémentation, décrémentation de la valeur 1 .)\\ | + | |
- | Il en va de même pour les autres opérateurs.\\ | + | |
- | === Exemples === | + | * Exemples |
<code bash> | <code bash> | ||
Ligne 661: | Ligne 662: | ||
</code> | </code> | ||
+ | ===Incrémentation, décrémentation=== | ||
- | ===incrémentation, décrémentation de la valeur 1 : ( ( var++ ) ) ; ( ( ++var ) ) ; ( ( var- - ) ), etc.=== | + | * incrémentation, décrémentation de la valeur 1 : ''<nowiki>(( var++ ))</nowiki>'' ; ''<nowiki>(( ++var ))</nowiki>'' ; ''<nowiki>(( var-- ))</nowiki>'', etc. |
<code bash> | <code bash> | ||
Ligne 691: | Ligne 693: | ||
done | done | ||
</code> | </code> | ||
- | [[atelier:chantier:script-bash-les-tableaux#se-creuser-un-peu-les-meninges|voir aussi ici]] | + | [[doc:programmation:bash:script:tableaux#se-creuser-un-peu-les-meninges|voir aussi ici]] |
* Ou encore de cette manière : | * Ou encore de cette manière : | ||
Ligne 701: | Ligne 703: | ||
====Changements de bases ==== | ====Changements de bases ==== | ||
Bash permet de changer de base (Il est par défaut en base 10)\\ | Bash permet de changer de base (Il est par défaut en base 10)\\ | ||
- | * base 8 (octal) : un chiffre précédé de **0**\\ | + | * base 8 (octal) : un chiffre n précédé de zéro : ''0n''\\ |
exemple : 02 => 2 en base 8 | exemple : 02 => 2 en base 8 | ||
- | * base 16(hexadécimal): un chiffre précédé de **0x**\\ | + | * base 16(hexadécimal): un chiffre n précédé de zéro+x : ''0xn''\\ |
exemple : 0x3 => 3 en base 16 | exemple : 0x3 => 3 en base 16 | ||
- | * autres bases : **base#nombre** | + | * autres bases : ''base#nombre'' |
* base maximale : base 64 | * base maximale : base 64 | ||