let 表达式
或者let "表达式"
或者let '表达式'
它们都等价于((表达式))
。" "
或者单引号' '
将表达式包围起来。,
来分隔多个表达式。let x+y
这样的写法,Shell 虽然计算了 x+y 的值,但却将结果丢弃;若不想这样,可以使用let sum=x+y
将 x+y 的结果保存在变量 sum 中。$((x+y))
来获取 x+y 的结果。请看下面的例子:
[m.smtshopping.cn]$ a=10 b=20 [m.smtshopping.cn]$ echo $((a+b)) 30 [m.smtshopping.cn]$ echo let a+b #错误,echo会把 let a+b作为一个字符串输出 let a+b
[m.smtshopping.cn]$ i=2 [m.smtshopping.cn]$ let i+=8 [m.smtshopping.cn]$ echo $i 10let i+=8 等同于 ((i+=8)),但后者效率更高。
[m.smtshopping.cn]$ a=10 b=35 [m.smtshopping.cn]$ let a+=6 c=a+b #多个表达式以空格为分隔 [m.smtshopping.cn]$ echo $a $c 16 51