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 |