Bash:让语句与赋值

时间:2013-09-09 18:46:29

标签: linux bash unix

分配给var=foo这样的变量和使用像let var=foo这样的变量有什么区别?或者像var=${var}barlet var+=bar这样的情况?每种方法的优点和缺点是什么?

1 个答案:

答案 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