let
bash中执行整数算术运算的命令是 let,后面直接跟上要进行的整数算术运算表达式即可。这里的算术表达式使用的是C语言的语法、优先级和结合性。所有的整型运算符都得到支持,此外,还提供指数运算符**。
Shell变量在算术表达式中可以直接通过变量名访问,而不用带上$。在算数表达式中所有Shell变量都视为整数来计算。算术表达式按长整型求值,并且不检查溢出。
下面是一些实例:
其中需要注意的是如果let后直接跟算数表达式,则操作数和操作符之间不能有空格,但加上双引号后就没有了这个限制。而且不加双引号的弊端还有就是可能某些操作符和Shell命令会冲突,例如按位或操作符和管道符都是 '|'
,这种情况就必须把算术表达式用双引号括起来。
(( ))
let 命令的替代表示形式是:((算术表达式))
即 let "a = 2 * 5"
等价于 ((a = 2 * 5))
。而且用这种方法算术表达式可以不加双引号,也不会出现上面说的操作符与Shell命令冲突的情况。
返回算术表达式的值
如果想要直接获得算术表达式运算的结果,不能直接用下面的形式:
可以看到上面几种写法的结果都不符合预期,我们想要的其实就是1+1后得到的2。所以可以用下面的语法:
只有这种写法才能直接得到算术表达式的返回值。
1 条评论
部分语句稍显冗长,可精简以增强节奏感。