Linux命令备忘实例(3)——数学运算

bash命令中,对于直接的算术操作的支持比较欠缺,但是有多个命令可以实现算术操作。对于基本的算术操作,可以使用let、(( ))、[ ]、expr执行,只支持基本整数操作;当需要进行高级操作,比如浮点数,进制转换时,可以使用bc这个工具。

1.基本整数运算

1.let

使用普通的赋值方法定义数值时,由于默认的都为字符串,因此可以使用let命令进行算术运算。使用let命令时,变量名前不需要加$符号。而且,支持自增,自减,运算赋值。

user@ubuntu:~$ n1=1;n2=2; let n3=$n1+$n2; echo $n3
3
user@ubuntu:~$ let n3++; echo $n3
4
user@ubuntu:~$ let n3--; echo $n3
3
user@ubuntu:~$ let n3+=$2; echo $n3
5
user@ubuntu:~$ let n3=$n1*$n2; echo $n3
2
user@ubuntu:~$ let n3=3**3; echo $n3
27

2.操作符[ ]和(( ))

这两个操作符与let命令类似,只需要使用$将操作符的结果取回,类似于bash中的子命令结果返回。

user@ubuntu:~$ n1=1;n2=2; res=$[n1 + n2]; echo $res
3
user@ubuntu:~$ res=$((n2 ** n2)); echo $res
4

3.expr

expr同样只能用于整数运算,不支持浮点数。与上述命令类似。
这里写图片描述

user@ubuntu:~$ res=`expr 12 + 2`; echo $res
14
user@ubuntu:~$ n1=1; res=$(expr $n1 + 3); echo $res
4
user@ubuntu:~$ expr index "abcde" 'b'
2
user@ubuntu:~$ res=`expr 12+2`; echo $res
12+2

使用expr时必须要在运算符两边加上空格,否则会当做字符串。支持的运算如上图中列举。

2.高级工具bc

bc是一个用于数学运算的高级工具,包含了大量的选项,可以进行精密的计算。如设置浮点数精度、进制转换、计算平方根等。
这里写图片描述
使用bc工具可以直接输入bc命令,然后就出现了一个供输入表达式的提示,按回车之后就可以得出结果。基本运算符有:+,-,*,/,^(指数)、%(取模)。使用scale可以设定输出小数精度,默认为0。

user@ubuntu:~$ bc
bc 1.06.95
Copyright ......
1+2+3
6
4^2
16
15%4
3
1/3
0
scale=3
1/3
.333

如果要离开bc计算环境,输入quit即可。当然bc也可以接受字符串来进行计算。可以设定小数进度、进制转换。

user@ubuntu:~$ echo "4 * 0.6" | bc
2.4
user@ubuntu:~$ echo "scale=3; 4/7" | bc
.571
user@ubuntu:~$ echo "obase=2;100" | bc
1100100
user@ubuntu:~$ echo "obase=10;ibase=2;100" | bc
4
user@ubuntu:~$ echo "sqrt(100)" | bc
10

在shell脚本的编写中,总是会需要用到各种数学运算的,这些功能算是给数学运算欠缺的shell提供了一定的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值