0
点赞
收藏
分享

微信扫一扫

Shell中的数值运算

香小蕉 2023-11-08 阅读 28
  • 使用expr、$[ ]、let等整数运算工具:进行四则运算及求模结果
  • 使用bc实现小数运算操作h
1 整数运算工具
1.1 使用expr命令

乘法操作应采用 \* 转义,避免被作为Shell通配符;参与运算的整数值与运算操作符之间需要以空格分开,引用变量时必须加$符号。

首先随便定义变量比如a=10,b=20,然后计算a与b的加减乘除和求模运算结果:

[root@nsd2309 opt]# a=10
[root@nsd2309 opt]# b=20
[root@nsd2309 opt]# expr $a + $b			
30
[root@nsd2309 opt]# expr $a - $b
-10
[root@nsd2309 opt]# expr $a \* $b						#乘法运算,加'\'转义符
200
[root@nsd2309 opt]# expr $a / $b
0
[root@nsd2309 opt]# expr $b / $a
2
[root@nsd2309 opt]# expr $a % $b						#求余
10
[root@nsd2309 opt]#

1.2 使用$[]或$(())表达式

乘法操作*无需转义,运算符两侧可以无空格;引用变量可省略 $ 符号;计算结果替换表达式本身,可结合echo命令输出。

对于变量a=100,b=10;分别计算a与b的加减乘除和求模运算结果:

[root@nsd2309 opt]# a=100
[root@nsd2309 opt]# b=10
[root@nsd2309 opt]# echo $[a+b]
110
[root@nsd2309 opt]# echo $[a-b]
90
[root@nsd2309 opt]# echo $[a*b]
1000
[root@nsd2309 opt]# echo $[a/b]
10
[root@nsd2309 opt]# echo $[a%b]
0
[root@nsd2309 opt]# echo $[5%3]
2

1.3 使用let命令

expr或[],(())方式只进行运算,并不会改变变量的值;

而let命令可以直接对变量值做运算再保存新的值。

常规写法         主流写法
let a=a+1       let a++         #变量a加1
let a=a-1       let a--         #变量a减1

let a=a+10      let a+=10       #变量a加10
let a=a-10      let a-=10       #变量a减10

let a=a*2       let a*=2        #变量a乘以2
let a=a/2       let a/=2        #变量a除以2

let a=a%3       let a%=3        #变量a除以3取余数

2 小数运算工具
2.1 bc交互式运算

先执行bc命令进入交互环境,然后再输入需要计算的表达式。

[root@nsd2309 opt]# bc

2.2 bc非交互式运算

将需要运算的表达式通过管道操作交给bc运算。

注意,小数位的长度可采用scale=N限制。

[root@nsd2309 opt]# echo "1.1+1" | bc
2.1
[root@nsd2309 opt]# echo "10/3" | bc
3
[root@nsd2309 opt]# echo "scale=2;10/3" | bc      #scale可以定义结果是小数点后多少位
3.33


举报

相关推荐

0 条评论