【Linux学习笔记】31:数值运算的方法

来源:互联网 发布:海岛奇兵 科技升级数据 编辑:程序博客网 时间:2024/05/23 00:57

上节的declare命令其实就可以进行数值运算,只要在要做数值运算的的结果变量前面加declare -i就可以。但这种方式不算方便,本节学期其它的方式进行数值运算。

常见算数运算 运算符 加法 + 减法 - 除法 / 乘法 * 取余数 %


[1]expr数值运算工具

*算数运算

[root@bogon ~]# aa=11[root@bogon ~]# bb=22[root@bogon ~]# cc=$(expr $aa + $bb)[root@bogon ~]# echo $cc33

*求字符串长度

[root@bogon ~]# aa="1234567"[root@bogon ~]# declare -i cc=$(expr length $aa)[root@bogon ~]# echo $cc7

*取子串(下标从1开始)

[root@bogon ~]# aa="1234567"[root@bogon ~]# cc=$(expr substr $aa 3 5)[root@bogon ~]# echo $cc34567[root@bogon ~]# cc=$(expr substr $aa 3 2)[root@bogon ~]# echo $cc34

注意expr表达式中运算符两边必须有空格。

[2]let数值运算工具

*算数运算

[root@bogon ~]# aa=11[root@bogon ~]# bb=22[root@bogon ~]# let cc=${aa}+${bb}[root@bogon ~]# echo $cc33

let和expr都不支持对小数的运算,expr还能支持对字符串的某些操作,对于整形数值运算,let的速度一般优于expr。

[3]数值运算的其它方法

*dollar双小括号(推荐)

$((运算式))

如:

[root@bogon ~]# aa=11[root@bogon ~]# bb=22[root@bogon ~]# cc=$(($aa+$bb))[root@bogon ~]# echo $cc33

*dollar中括号(不推荐)

$[运算式]

如:

[root@bogon ~]# aa=11[root@bogon ~]# bb=22[root@bogon ~]# cc=$[$aa+$bb][root@bogon ~]# echo $cc33

后面学习条件测试语句用的就是中括号,所以推荐使用双小括号做数值运算更便于阅读。

[4]Bash运算符优先级表

这里写图片描述

原创粉丝点击