您的位置:首页 > 运维架构 > Linux

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

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

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

[1]expr数值运算工具

*算数运算

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


*求字符串长度

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


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

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


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

[2]let数值运算工具

*算数运算

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


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

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

*dollar双小括号(推荐)

$((运算式))


如:

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


*dollar中括号(不推荐)

$[运算式]


如:

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


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

[4]Bash运算符优先级表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: