let

bash中执行整数算术运算的命令是 let,后面直接跟上要进行的整数算术运算表达式即可。这里的算术表达式使用的是C语言的语法、优先级和结合性。所有的整型运算符都得到支持,此外,还提供指数运算符**。

Shell变量在算术表达式中可以直接通过变量名访问,而不用带上$。在算数表达式中所有Shell变量都视为整数来计算。算术表达式按长整型求值,并且不检查溢出。

下面是一些实例:

其中需要注意的是如果let后直接跟算数表达式,则操作数和操作符之间不能有空格,但加上双引号后就没有了这个限制。而且不加双引号的弊端还有就是可能某些操作符和Shell命令会冲突,例如按位或操作符和管道符都是 '|' ,这种情况就必须把算术表达式用双引号括起来。

(( ))

let 命令的替代表示形式是:((算术表达式))

let "a = 2 * 5" 等价于 ((a = 2 * 5))。而且用这种方法算术表达式可以不加双引号,也不会出现上面说的操作符与Shell命令冲突的情况。

返回算术表达式的值

如果想要直接获得算术表达式运算的结果,不能直接用下面的形式:

可以看到上面几种写法的结果都不符合预期,我们想要的其实就是1+1后得到的2。所以可以用下面的语法:

只有这种写法才能直接得到算术表达式的返回值。

算术表达式用于判断语句

http://laihaodong.cn/index.php/archives/2057/

Last modification:September 7th, 2019 at 09:06 pm