分配给var=foo
这样的变量和使用像let var=foo
这样的变量有什么区别?或者像var=${var}bar
和let var+=bar
这样的情况?每种方法的优点和缺点是什么?
答案 0 :(得分:64)
let
正是(( ))
所做的,它适用于算术表达式。 let
和(( ))
之间有almost no difference。
您的示例无效。 var=${var}bar
将向bar
变量添加单词var
(这是一个字符串操作),let var+=bar
不起作用,因为它不是算术表达式:
$ var='5'; let var+=bar; echo "$var"
5
实际上,如果只设置变量bar
,则它是一个算术表达式,否则bar
被视为零。
$ var='5'; bar=2; let var+=bar; echo "$var"
7