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 Les deux révisions suivantes
doc:programmation:shells:script-bash-variables-arguments-parametres [04/06/2014 07:18]
Hypathie [Création de variables]
doc:programmation:shells:script-bash-variables-arguments-parametres [04/06/2014 09:55]
Hypathie [Typologie des variables]
Ligne 462: Ligne 462:
 Comme nous l'​avons vu on peut affecter une variable par différents types de valeurs ; des chaînes de caractères,​ des nombres, des valeurs d'​autres variables, des substitutions de commandes.\\ ​ Comme nous l'​avons vu on peut affecter une variable par différents types de valeurs ; des chaînes de caractères,​ des nombres, des valeurs d'​autres variables, des substitutions de commandes.\\ ​
 On dit pour cela quand bash les variables ne sont pas typées.\\ On dit pour cela quand bash les variables ne sont pas typées.\\
-Mais il peut être intéressant de typer une variable. Pour ce faire, il faut utiliser des commandes internes à bash qui permettent de déclarer une variable typée.\\ ​  +Mais il peut être intéressant de typer une variable. Pour ce faire, il faut utiliser des commandes internes à bash qui permettent de déclarer une variable typée.\\ 
 + 
 +====declare et typeset ====  
 +^ commandes ​     ^options ​           ^ 
 +|declare/​typeset |-r lecture seule   ​
 +|declare/​typeset |-i entier ​         | 
 +|declare/​typeset |-a tableau (array) | 
 +|declare/​typeset |-f fonction(s) ​    | 
 +|declare/​typeset |-x export ​         | 
 +|declare/​typeset |-x var=$value ​     | 
 + 
 +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 === 
 + 
 +<note important>​ 
 +**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] ... 
 + 
 +<code bash> 
 +#​!/​bin/​bash 
 +declare -i x=35*2 
 +echo $x 
 +</​code>​ 
 +retour 
 +<​code>​ 
 +70 
 +</​code>​ 
 + 
 +  * Pour que la valeur d'une variable ne soit pas accidentellement modifier, il faut ajouter l'​attribut -r. 
 + 
 +<code bash> 
 +#​!/​bin/​bash 
 +declare -ir a=35*2 
 +declare -ir b=5+5 
 +echo $(($a+$b)) 
 +</​code>​ 
 +retour 
 +<​code>​ 
 +80 
 +</​code>​ 
 + 
 +**POSIX : Les commandes let et ( ( ... ) ) permettent de typer les variables pour effectuer des calculs sur les variables (synonyme de declare -i).** 
 +</​note>​ 
 + 
 + 
 +===== Variables numériques ​ ===== 
 + 
 +==== 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]]**  
 +===syntaxe=== 
 +<​code>​ 
 +let 'var = 5 + 5' 
 +      OU LE SHELL ARITHMÉTIQUE : 
 +$(( 5 * 3 )) 
 +</​code>​ 
 +=== exemples=== 
 +<code bash> 
 +#​!/​bin/​bash 
 +let "a = 10" 
 +let "b = 2" 
 +let "c = a+b" 
 +echo $c 
 +let "e = 10*2"​ 
 +echo $e 
 +let "f = 15" 
 +let "f *=2" 
 +echo $f 
 +echo " " 
 +let 'var = 5 + 5' 
 +echo "​$var"​ 
 +echo " " 
 +echo $(( 20 + 20 )) 
 +var1="​2"​ 
 +var2="​5"​ 
 +echo $(( $var2 % $var1 )) 
 +</​code>​ 
 +Retour 
 +<​code>​ 
 +12 
 +20 
 +30 
 +  
 +10 
 +  
 +40 
 +
 +</​code>​ 
 + 
 +==== 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]]** 
 + 
 +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 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 === 
 + 
 +<code bash> 
 +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>​ 
 + 
 + 
 +===incrémentation,​ décrémentation de la valeur 1 : ( ( var++ ) ) ; ( ( ++var ) ) ; ( ( var- - ) ), etc.=== 
 + 
 +<code bash> 
 +#​!/​bin/​bash 
 +let "var = 5" 
 +echo "​$var"​ 
 +(( var++ )) 
 +echo "​$var"​ 
 +(( var-- )) 
 +echo "​$var"​ 
 +</​code>​ 
 +Retour : 
 + 
 +<​code>​ 
 +
 +
 +
 +</​code>​ 
 + 
 +====Changements de bases ==== 
 +Bash permet de changer de base (Il est par défaut en base 10)\\ 
 +  * base 8 (octal) : un chiffre précédé de **0**\\ 
 +exemple : 02 => 2 en base 8 
 +  * base 16(hexadécimal):​ un chiffre précédé de **0x**\\ 
 +exemple : 0x3 => 3 en base 16 
 +  * autres bases : base#​nombre 
 +  * base maximale : base 64 
 + 
doc/programmation/shells/script-bash-variables-arguments-parametres.txt · Dernière modification: 23/02/2023 02:20 par agp91

Pied de page des forums

Propulsé par FluxBB