L'opérateur d'affectation (pas d'espace avant ni après)
Exemple 4.2. Affectation basique de variable
#!/bin/bash # Variables nues echo # À quel moment une variable est-elle «nue», c'est-à-dire sans son signe '$' ? # C'est quand on lui affecte une valeur, pas quand elle est évalué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, basique et plus élaborée
#!/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 # Remarque : inclure un point d'exclamation à l'intérieur d'une substitution de #+ commandes ne fonctionnera pas à partir de la ligne de commande, #+ car ceci déclenche le 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 # Sans guillemets, supprime les tabulations et #+ retours chariots. echo echo "$a" # La variable entre guillemets préserve les 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). C'est un peu une sorte de substitution de commandes.
# tiré de /etc/rc.d/rc.local R=$(cat /etc/redhat-release) arch=$(uname -m)