一尘不染

Bash:let语句vs赋值

linux

分配给变量like var=foo和使用let like有let var=foo什么区别?还是像var=${var}bar和这样的案例let var+=bar?每种方法的优点和缺点是什么?


阅读 425

收藏
2020-06-07

共1个答案

一尘不染

let完全是(( ))做什么的,它用于算术表达式。目前几乎没有差别之间let(( ))

您的示例无效。var=${var}bar要将单词添加barvar变量(这是一个字符串操作),let var+=bar将不起作用,因为它不是算术表达式:

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

实际上,如果仅bar设置了变量,则它是一个算术表达式,否则bar将被视为零。

$ var='5'; bar=2; let var+=bar; echo "$var"
7
2020-06-07