Guide avancé d'écriture des scripts Bash: | ||
---|---|---|
Précédent | Chapitre 4. Introduction aux variables et aux paramètres | Suivant |
A l'inverse de nombreux langages de programmation, Bash ne regroupe pas ses variable par << type >>. Essentiellement, les variables bash sont des chaînes de caractères, mais, suivant le contexte, Bash autorise des opérations entières et des comparaisons sur ses variables, le facteur décisif étant la seule présence de chiffres dans la variable.
Exemple 4-4. Entier ou chaîne?
#!/bin/bash # int-or-string.sh: Entier ou chaîne de caractères? a=2334 # Entier. let "a += 1" echo "a = $a " # a = 2335 echo # Entier, toujours. b=${a/23/BB} # Substitue "BB" à "23". # Ceci transforme $b en une chaîne de caractères. echo "b = $b" # b = BB35 declare -i b # Le déclarer comme entier n'aide pas. echo "b = $b" # b = BB35 let "b += 1" # BB35 + 1 = echo "b = $b" # b = 1 echo c=BB34 echo "c = $c" # c = BB34 d=${c/BB/23} # Substitue "23" à "BB". # Ceci fait de $d un entier. echo "d = $d" # d = 2334 let "d += 1" # 2334 + 1 = echo "d = $d" # d = 2335 echo # Et à propos des variables null? e="" echo "e = $e" # e = let "e += 1" # Les opérations arithmétiques sont-elles permises sur # une variable null? echo "e = $e" # e = 1 echo # Variable null transformée en entier. # Et concernant les variables non déclarées? echo "f = $f" # f = let "f += 1" # Opérations arithmétiques permises? echo "f = $f" # f = 1 echo # Variable non déclarée transformée en entier. # Les variables dans Bash sont essentiellement non typées. exit 0 |
Des variables non typées ont des bons et des mauvais côtés. Elles permettent plus de flexibilité dans l'écriture des scripts (assez de corde pour se pendre soi même !) et rendent plus aisé le ciselage des lignes de code. Néanmoins elles permettent aux erreurs de s'infiltrer dans les programmes et encouragent des habitudes de code bâclé.
Il incombe au programmeur de garder une trace du type des variables du script. Bash ne le fera pas à votre place.
Précédent | Sommaire | Suivant |
Affectation de variable | Niveau supérieur | Types spéciaux de variables |