Alain Leroy
Le Shell, quelque soit son type, est un interpréteur de commande, il possède un langage propre permettant la programmation. À ce titre il possède des variables.
Leur déclaration est simple :
var=valeur
set var = valeur
On fait précéder son nom du caractère « $ »
Exemples :
[prompt]$ ma_var=ma_valeur [prompt]$ echo $ma_var ma_valeur [prompt]$ mon_autre_var=$ma_var:mon_autre_valeur [prompt]$ echo $mon_autre_var ma_valeur:mon_autre_valeur [prompt]$
Comme on le voit dans l'exemple ci-dessus, on peut reprendre la valeur d'une variable dans la définition d'une autre variable ou dans la modification de la variable en cours.
Parfois, pour lever toute ambiguïté sur un nom de variable il est préférable de placer son nom entre accolades, de la manière suivante :
[prompt]$ mon_autre_var=${ma_var}:mon_autre_valeur
Exemple :
[prompt]$ x=${var:=truc}
Si var est vide ou n'existe pas on la crée éventuellement et on lui affecte la valeur truc et on rend cette valeur pour résultat de l'expression (truc est affecté à x). Si var n'est pas vide alors on rend sa valeur, tout simplement (si var existe et vaut xyz, alors cette valeur est affectée à x).
(C'est compliqué à expliquer... À comprendre aussi sans doute...
C'est facile à utiliser quand on l'a fait une fois.)
Et il y a encore d'autres subtilités voisines dans le manuel de
référence de sh ou bash. RTFM !
Certaines variables sont particulières car elles sont hérités par les processus lancés à partir du Shell. On les appelle les variables d'environnement. Leur nom est en général en majuscules mais ce n'est qu'une coutume non obligatoire.
Leur déclaration est la suivante :
NOM_VAR_ENV=valeur (comme une variable normale) export NOM_VAR_ENV en bash on peut faire directement export NOM_VAR_ENV=valeur
Attention il n'y a pas d'espace de part et d'autre du signe egal.
setenv NOM_VAR_ENV valeur
(il n'y a pas de signe égal)
Commande env