linux Bash: let déclaration vs affectation



bash if (1)

Quelle est la différence entre assigner une variable comme var=foo et utiliser let like 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?


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

Vos exemples ne sont pas valides. var=${var}bar va ajouter un mot bar à la variable var (qui est une opération 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 réalité, il s’agit d’une expression arithmétique, si seule la variable bar été définie, sinon la bar est traitée comme zéro.

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




unix