在本文中,我们将向您展示在Linux终端中进行算术运算的各种有用方法。 在本文结束时,您将学习在命令行中进行数学计算的基本不同实用方法。
常用的运算:
+加法
-减法
*乘法
/ 除法
^ 指数
% 余数
1、使用bash:
[root@localhost ~]# echo $((1+2))
3
[root@localhost ~]# a=$((2*2))
[root@localhost ~]# echo $a
4
[root@localhost ~]# b=$((a-2))
[root@localhost ~]# echo $b
2
[root@localhost ~]# c=$(($b/1))
[root@localhost ~]# echo $c
2
[root@localhost ~]# d=$((34%5))
[root@localhost ~]# echo $d
4
2、let命令:
[root@localhost ~]# let a=1+2
[root@localhost ~]# echo $a
3
[root@localhost ~]# let b=$a*5
[root@localhost ~]# echo $b
15
[root@localhost ~]# let c=$b-3
[root@localhost ~]# echo $c
12
[root@localhost ~]# let d=$c/2
[root@localhost ~]# echo $d
6
[root@localhost ~]# let e=$d%5
[root@localhost ~]# echo $e
1
3、expr命令:
[root@localhost ~]# expr 2 + 3
5
[root@localhost ~]# expr 8 - 5
3
[root@localhost ~]# expr 2 \* 3
6
[root@localhost ~]# expr 20 / 4
5
[root@localhost ~]# expr 20 % 8
4
[root@localhost ~]# n=$((1+2))
[root@localhost ~]# echo $n
3
[root@localhost ~]# m=$(expr $n + 5)
[root@localhost ~]# echo $m
8
注意:的是使用expr命令时,数字与运算符之间要用空格隔开。并且”*“需用转义符“\”标注。
expr 还可以用来比较大小,当表达式求值成立时,expr将打印值0,否则打印1。
[root@localhost ~]# expr 5 = 2
0
[root@localhost ~]# expr 2 = 2
1
[root@localhost ~]# expr 3 != 8
1
[root@localhost ~]# expr 5 \> 3
1
[root@localhost ~]# expr 5 \< 3
0
[root@localhost ~]# expr 5 \>= 3
1
同时expr可以用来查看字符串长度。
[root@localhost ~]# expr length "hello world"
11
[root@localhost ~]# echo "hello world" | wc -L
11
4、bc命令:
[root@localhost ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2
3
8-5
3
3*4
12
(1+2+3)/3
2
20%8
4
30/8
3
同时也可以通过管道来使用。
[root@localhost ~]# echo '2+3' | bc
5
-l 用于精确到小数(默认小数点后20位)计算。
[root@localhost ~]# echo '10/3' | bc -l
3.33333333333333333333
scale=2 设小数位,2 代表保留两位。
[root@localhost ~]# echo 'scale=2;10/3' |bc
3.33
5、awk命令
awk非常强大,功能也非常多,这里只介绍其用于算数运算。
[root@localhost ~]# awk 'BEGIN {a=1;b=2;print "(a+b)=",(a+b)}'
(a+b)= 3
[root@localhost ~]# awk 'BEGIN {a=5;b=3;print "(a-b)=",(a-b)}'
(a-b)= 2
[root@localhost ~]# awk 'BEGIN {a=2;b=3;print "(a*b)=",(a*b)}'
(a*b)= 6
[root@localhost ~]# awk 'BEGIN {a=8;b=2;print "(a/b)=",(a/b)}'
(a/b)= 4
[root@localhost ~]# awk 'BEGIN {a=10;b=3;print "(a%b)=",(a%b)}'
(a%b)= 1
#也可以直接输出结果:
[root@localhost ~]# awk 'BEGIN {a=8;b=2;print(a+b)}'
10