Linux终端中进行算术运算的6种方式

84 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

目录

  1. 使用bash
  2. 使用let列表
  3. 使用expr命令
  4. 使用bc命令
  5. 使用awk命令
  6. 使用factor命令

1、使用bash

使用双括号可以像C语言一样直接使用运算符进行计算。

[root@localhost ~]# echo $((13+20)) 
33 
[root@localhost ~]# a=$((2*45)) 
[root@localhost ~]# echo $a 
90 

[root@localhost ~]# b=$(($a-3)) 
[root@localhost ~]# echo $b 
87 

[root@localhost ~]# c=$(($b/2)) 
[root@localhost ~]# echo $c 
43 

[root@localhost ~]# d=$(($c%5)) 
[root@localhost ~]# echo $d 
3

2、使用let命令

使用let命令后,可以直接跟表达式,不用加双括号。

[root@localhost ~]# let a=1+2 
[root@localhost ~]# echo $a 
3 

[root@localhost ~]# let b=$a*6 
[root@localhost ~]# echo $b 
18 

[root@localhost ~]# let c=$b/2 
[root@localhost ~]# echo $c 
9

3.使用expr命令

类似于let命令,expr命令除了计算表达式,还将提供的表达式的值打印到标准输出。以及使用expr进行比较,增加变量值和查找字符串长度。

[root@localhost ~]# expr 3 + 5 
8 

[root@localhost ~]# expr 15 % 3 
0 

[root@localhost ~]# expr 5 \* 3 
15 

[root@localhost ~]# expr 4 - 1 
3 

[root@localhost ~]# expr 20 / 4 
5 

[root@localhost ~]# num=$((1+2)) 
[root@localhost ~]# echo $num 
3 

[root@localhost ~]# num1=$(expr $num + 3)
##必须有空格 
[root@localhost ~]# echo $num1 
6

需要注意的是使用expr命令时,数字与运算符之间要用空格隔开。并且”*“需用转义符“\”标注。

expr 还可以用来比较大小,当表达式求值为false时,expr将打印值0,否则打印1。

[root@localhost ~]# expr 5 == 3 
0 

[root@localhost ~]# expr 5 == 5 
1 

[root@localhost ~]# expr 8 != 6 
1 

[root@localhost ~]# expr 8 \> 6 
1 

[root@localhost ~]# expr 8 \< 6 
0 

[root@localhost ~]# expr 8 \<= 6 
0 

[root@localhost ~]# expr 6 \<= 6 
1 
###\<=有其中一个就行

同时expr可以用来查看字符串长度。

[root@localhost ~]# expr length "hello world" 
11 
[root@localhost ~]# echo "hellp world" | wc -L 
11

更多expr用法请参照man expr。

4、使用bc命令

bc其实就是一个基于终端的计算机程序,有交互的非交互两种使用方式。

直接输入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+1 
2 
5*6 
30 
92/3 
30 
6%2 
0 
(4+3*2)/3 
3

同时也可以通过管道来使用

[root@localhost ~]# echo '3+4' |bc 
7 

[root@localhost ~]# echo "4*3" | bc 
12 

[root@localhost ~]# echo "4%3" | bc 
1 

[root@localhost ~]# echo "4/3" | bc 
1 

[root@localhost ~]# echo "20/3" | bc -l 
6.66666666666666666666 ##-l用于精确到小数点后20位

5、使用awk命令

awk非常强大,功能也非常多,这里只介绍其用于算数运算。

[root@localhost ~]# awk 'BEGIN { a = 10;b = 3; print "(a - b)=",(a + b) }' (a - b)= 13 [root@localhost ~]# awk 'BEGIN { a = 10;b = 3; print "(a - b)=",(a - b) }' (a - b)= 7 [root@localhost ~]# awk 'BEGIN { a = 10;b = 3; print "(a * b)=",(a * b) }' (a * b)= 30 [root@localhost ~]# awk 'BEGIN { a = 10;b = 3; print "(a / b)=",(a / b) }' (a / b)= 3.33333 [root@localhost ~]# awk 'BEGIN { a = 10;b = 3; print "(a % b)=",(a % b) }' (a / b)= 1 ##空格只是为了好看,可以不添加。

6、使用factor命令

factor命令用于将整数分解分素数因子。

[root@localhost ~]# factor 242 
242: 2 11 11 
[root@localhost ~]# factor 345 
345: 3 5 23