Bash:让声明VS分配
分配给像var=foo
这样的variables和使用let let var=foo
之间有什么区别? 还是像var=${var}bar
和let var+=bar
? 每种方法的优点和缺点是什么?
let
(( ))
做什么,它是算术expression式。 let
和(( ))
几乎没有区别 。
你的例子是无效的。 var=${var}bar
将要添加单词bar
到var
variables(这是一个string操作), let var+=bar
不起作用,因为它不是一个算术expression式:
$ var='5'; let var+=bar; echo "$var" 5
实际上,它是一个算术expression式,如果只设置了variablesbar
,否则bar
被视为零。
$ var='5'; bar=2; let var+=bar; echo "$var" 7