分配给变量like var=foo和使用let like有let var=foo什么区别?还是像var=${var}bar和这样的案例let var+=bar?每种方法的优点和缺点是什么?
var=foo
let var=foo
var=${var}bar
let var+=bar
let完全是(( ))做什么的,它用于算术表达式。目前几乎没有差别之间let和(( ))。
let
(( ))
您的示例无效。var=${var}bar要将单词添加bar到var变量(这是一个字符串操作),let var+=bar将不起作用,因为它不是算术表达式:
bar
var
$ var='5'; let var+=bar; echo "$var" 5
实际上,如果仅bar设置了变量,则它是一个算术表达式,否则bar将被视为零。
$ var='5'; bar=2; let var+=bar; echo "$var" 7