shell算术运算
shell可以对算术表达式求值,它可以是Shell算术扩展,也可以由内部命令let来实现。求值时使用固定宽度的整数,并且不检查溢出,但是它可以捕获除以0的情况报错。
let var=5**2
let var=9%2
let var+=10
let var*=5
逻辑与&&与逻辑或||运算符。
echo $(( 2 && 3))
逗号运算符将两个或更多的算术运算符连接在一起,所有的运算都被求值,但只有最后一个运算的值被返回。
let var=(2+3,10-5,20-6)
echo $var
14
let var=(var1=10,10%3)
echo $var
1
echo $var1
10
数字常量
base#NUMBER
base 是介于2-64之间的十进制数,表示算术进制基数。
使用算术扩展和let进行算术运算
算术扩展可以对算术表达式求值并替换成所求得的值。它的格式是:
$((算术表达式))
注意:算术扩展中的运算数只能是整数,算术扩展不能对浮点数进行算术运算。
var a = $(( 9%5 ))
let命令的动能和算术扩展基本相同。但是let语句要求默认情况下在任何操作符两边不能含有空格。
let var=10+2
私用expr 命令
expr命令是一个用于对表达式进行求值并输出相应结果的命令行工具。它同样也只支持整数运算数,不支持浮点运算。
与let相反,表达式运算时必须包含空格 某些运算符还要使用"\"转义
expr 6 + 8
expr 6 \* 8
使用expr命令给变量赋值时,需要使用shell扩展中的命令替换。
c=$( expr 6 \* 8)