| Guide avancé d'écriture des scripts Bash: | ||
|---|---|---|
| Précédent | Chapitre 4. Introduction aux variables et aux paramètres | Suivant |
L'opérateur d'affectation (pas d'espace avant et après)
![]() | Ne pas confondre ceci = et -eq, qui teste, plutôt qu'affecte ! Noter cependant que = peut être un opérateur d'affectation ou de test, suivant le contexte. |
Exemple 4-2. Affectation de variable : de base
#!/bin/bash # Variables nues echo # Quand une variable est "nue", c'est-à-dire qu'il lui manque le signe '$'? # Quand on lui affecte une valeur, plutôt que quand elle est référencée. # Affectation a=879 echo "La valeur de \"a\" est $a." # Affectation utilisant 'let' let a=16+5 echo "La valeur de \"a\" est maintenant $a." echo # Dans une boucle 'for' (en fait, un type d'affectation déguisée) echo -n "Les valeurs de \"a\" dans la boucle sont: " for a in 7 8 9 11 do echo -n "$a " done echo echo # Dans une instruction 'read' (un autre type d'affectation) echo -n "Entrez \"a\" " read a echo "La valeur de \"a\" est maintenant $a." echo exit 0 |
Exemple 4-3. Affectation de variable , de base et élaboré
#!/bin/bash
a=23 # Cas simple
echo $a
b=$a
echo $b
# Maintenant, allons un peu plus loin (substitution de commande).
a=`echo Hello!` # Affecte le résultat de la commande 'echo' à 'a'
echo $a
# Notez que utiliser un point d'exclamation dans une substitution de commandes
#+ ne fonctionnera pas à partir de la ligne de commande,
#+ car ceci déclenchele mécanisme d'historique de Bash.
# Néanmoins, à l'intérieur d'un script, les fonctions d'historique sont
#+ désactivées.
a=`ls -l` # Affecte le résultat de la commande 'ls -l' à 'a'
echo $a # Néanmoins, sans guilleets, supprime les tabulations et les
#+ retours chariots.
echo
echo "$a" # La variable entre guillemets préserve les espaces blancs.
# (Voir le chapitre sur les "Guillemets.")
exit 0 |
Affectation de variable utilisant le mécanisme $(...) (une méthode plus récente que l'apostrophe inverse)
# issu de /etc/rc.d/rc.local R=$(cat /etc/redhat-release) arch=$(uname -m) |
| Précédent | Sommaire | Suivant |
| Substitution de variable | Niveau supérieur | Les variables Bash ne sont pas typées |