web-dev-qa-db-fra.com

Bash: let déclaration vs affectation

Quelle est la différence entre l’affectation d’une variable telle que var=foo et utiliser let comme let var=foo? Ou des cas comme var=${var}bar et let var+=bar? Quels sont les avantages et les inconvénients de chaque approche?

52
IDDQD

let fait exactement ce que (( )) _, c'est pour les expressions arithmétiques. Il y a presque pas de différence entre let et (( )).

Vos exemples ne sont pas valides. var=${var}bar va ajouter Word bar à la variable var (opération sous forme de chaîne), let var+=bar ne fonctionnera pas, car ce n’est pas une expression arithmétique:

$ var='5'; let var+=bar; echo "$var"
5

En fait, il IS est une expression arithmétique, si seule la variable bar a été définie, sinon bar est traité comme zéro.

$ var='5'; bar=2; let var+=bar; echo "$var"
7