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: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 12:29]
Hypathie [Variables numériques et calculs]
Ligne 15: Ligne 15:
  
 ===== Création, suppression,​ exportation de variables ===== ===== Création, suppression,​ exportation de variables =====
-En liens nécessaires : \\  
-[[doc:​programmation:​shell:​shell#​variables-et-environnement|Le shell pour tous : "​Variables et environnement"​]]\\ ​ 
-[[doc:​programmation:​shell:​variables]] 
    
 **Le nom d'une variable est un simple pointeur vers l'​emplacement mémoire où sont conservées les données qu'​elle contient.**\\ ​ **Le nom d'une variable est un simple pointeur vers l'​emplacement mémoire où sont conservées les données qu'​elle contient.**\\ ​
Ligne 462: Ligne 459:
 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 et calculs ===== 
 + 
 +==== 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 
 + 
 +=====Références ===== 
 + 
 +[[doc:​programmation:​shell:​shell#​variables-et-environnement|Le shell pour tous : "​Variables et environnement"​]]\\  
 +[[doc:​programmation:​shell:​variables]] 
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