linux命令行的操作符,如何在Linux命令行中进行基本的数学运算

Linux bash或命令行允许您执行基本和复杂的算术和布尔运算。像expr,jot,bc和factor等命令可以帮助您找到复杂问题的最优数学解决方案。在本文中,我们将描述这些命令并提供示例,这些示例将作为您转向更有用的数学解决方案的基础。

我们在Ubuntu 18.04 LTS系统上运行了本文中提到的命令和过程。

我们使用Ubuntu命令行终端,以执行所有数学运算。您可以通过系统Dash或Ctrl + Alt + T快捷方式打开终端。

d0ac03da4e371077078e742b005f0ae8.png

expr命令

Linux中的expr或expression命令是用于执行数学计算的最常用命令。您可以使用此命令执行加法,减法,乘法,除法,递增值等功能,甚至可以比较两个值。在本节中,我们将描述执行上述计算的语法,并介绍如何使用expr命令在Ubuntu命令行中执行高效数学运算。

加法

您可以通过expr命令添加两个或多个数字,如下所示:

$ expr number1 + number2

示例:

$ expr 100 + 90

c6039444d506e8eff159e905431903ac.png

减法

您可以通过expr命令对两个或多个数字执行减法,如下所示:

$ expr number1 – number2

示例:

$ expr 100 - 27

1dec4a2ef7712fe43f82718c654598df.png

乘法

您可以通过expr命令执行两个或多个数字的乘法,如下所示:

$ expr number1 \* number2

示例:

linuxidc@linuxidc:~/www.linuxidc.com$ expr 11 \* 10

73d424a8a27661166d77f3ce73bf28d6.png

请注意,以下是Linux命令行中数字乘法的语法也可以。

linuxidc@linuxidc:~/www.linuxidc.com$ expr 11 * 10

fdb18982cd392ad3842c51da28979386.png

除法

您可以通过expr命令将一个数字初一另一个数,如下所示:

$ expr number1 / number2

示例:

$ expr 110 / 10

4c610a91c5208220added6bdac4105ba.png

增加变量

您可以通过首先定义Linux中的变量来增加它,如下所示:

$ count_variable=9

然后,使用以下表达式,使用expr命令执行增量操作:

$ count_variable=`expr $count_variable + 7`

现在,当您通过以下命令回显该变量值时,它将打印最初定义的变量的递增值。

$ echo $count_variable

5e7ef25b83301c075809ad19321e0a7e.png

比对

通过expr命令,您还可以检查数字是否大于另一个数字。

$ expr number1 \> number2

示例:

$ expr 16 \> 11

f8031b083954c7e9219e49872ea3649c.png

结果值1表示第一个数字大于第二个数字。 而结果值0表示第一个数不大于第二个。

示例:

$ expr 11 \> 26

f8707a26a4b3210cfddaad313708bbca.png

通过expr命令,您还可以使用以下语法查看两个数字是否相等:

$ expr number1 = number2

示例s:

$ expr 19 = 19

$ expr 11 = 15

a8e7ec27a3027da4e5e20c7cb38c9ea8.png

结果值1表示第一个数字等于第二个数字。

而结果值0表示两个数字不相等。

在上面的例子中,我们可以很明显看到两个比较数字是否相等。

那么这个操作怎么有用呢?

让我们假设在一个程序中,我们想知道一些数字的计算平均值是否等于10。

在这里,我们可以充分利用expr命令将“average”变量的结果与10进行比较,并根据此结果执行进一步的操作。

$ average=20

$ expr $average = 20

ad74335bb3570fbbf83bb8e35572d5d7.png

高效地使用expr命令

让我们举一个expr命令实际上可以生效的例子。在这个例子中,我们将使用expr命令来计算当有20个孩子和158块糖果时,一个孩子得到了多少糖果。该程序还将计算所有孩子得到相同数量的糖果后剩下的糖果数量。

linuxidc@linuxidc:~/www.linuxidc.com$ children=20

linuxidc@linuxidc:~/www.linuxidc.com$ sweets=158

linuxidc@linuxidc:~/www.linuxidc.com$ PerChildShare=`expr $sweets / $children`

linuxidc@linuxidc:~/www.linuxidc.com$ RemainingSweets=`expr $sweets - $children \* $PerChildShare`

linuxidc@linuxidc:~/www.linuxidc.com$ echo $PerChildShare

7

linuxidc@linuxidc:~/www.linuxidc.com$ echo $RemainingSweets

18

3274aeda8b15763dacf9639188ec0c1d.png

输出完美地显示了每个孩子平均得到12块,剩下2块在罐子里。

jot命令

Linux jot命令可帮助您根据您提供的值创建数字列表,作为起始编号和要在其后查看的值的数量。

在本节中,我们将描述通过jot执行计算的语法,并介绍如何使用jot命令在Ubuntu命令行中执行高效数学运算。

您可能首先需要安装Athena-jot才能在Ubuntu上使用jot命令。

输入以下命令作为sudo,因为只有授权人员才能在Ubuntu上添加/删除和配置软件:

linuxidc@linuxidc:~/www.linuxidc.com$ sudo apt install athena-jot

6f642bd017902b061057d726931a2347.png

系统可能会提示您使用Y/n选项确认继续安装。

请输入Y然后按Enter键继续,之后软件将安装在您的系统上。

在数字y之后打印x个数字

使用jot命令,您可以在数字y之后打印x个数值。请使用以下命令:

使用以下命令执行此操作:

$ jot x y

以下示例将为您解决问题:

$ jot 6 2

bb560e4053d994739a5f277ad46bec53.png

我们的示例输出显示数字2(y)后面的6(x)个值列表。

在数字y之后反转打印x个数字,直到数字z

您还可以使用jot命令来反向打印数字y后面的x个值,以数字z结尾。

使用以下语法执行此操作:

$ jot x y z

以下的例子会让你明白:

$ jot 5 10 1

67fe346f4f72fb3df1b9a600f5cdf71c.png

我们的示例输出反向显示数字10(y)之前的5(x)值,直到列表达到数字1(z)。

高效地使用jot命令

让我们给出一个示例,其中jot命令实际上是有效的。在本例中,我们将使用jot命令从第1天(y值)开始打印12月份的9天(x值)。

$ for i in `jot 9 1`; do echo December$i; done

这是输出:

096bae3b54820f6429f28bc82b6b7129.png

我们通过使用jot命令的输出作为变量i的输入值来使用for循环。

factor命令

从名称可以清楚地看出,Linux中的factor命令用于计算我们提供数字的质因数。

语法:

$ factor number

示例:

84228456e4f0a427ae5e0560cf53510c.png

在上面的示例中,您可以看到factor命令如何打印除23以外的给定数字的多个质因数,因为数字23除了它自己没有其他质因数。

bc命令

在bash中执行复杂操作时,bc命令非常有用。 此命令还可以进行比较,处理布尔值,计算平方根,正弦,余弦和切线等。您需要做的就是将数学表达式传递给bc命令,如下所示:

$ echo “math_expression” | bc

然后输出显示数学表达式的结果。

示例:

$ echo "10+10/2-(2*3)" | bc

76d7001c53aa752698654b534f337c56.png

计算π

由于bc命令不会回避精度,并且您想要输入的字符串非常简单,您可以使用它来计算pi的值到您想要的小数点数。

在下面的示例中,我们通过指定一个缩小值来舍入十进制来打印π的值。

$ echo "scale=3; 4*a(1)" | bc -l

113702d004828ae6e37bb4778dddbefe.png

由于是保留3位小数,圆周率的结果将被精确到小数点后三位。

echo "scale=11; 4*a(1)" | bc -l

c35191e5211e2812e9476c175b11270b.png

由于是保留11位小数,圆周率的结果将被精确到小数点后11位。

执行Bash数学运算

您可以使用一组双括号来执行简单的bash数学运算。 您可以通过此技术在bash中执行算术运算和布尔运算。

算术

可以在Linux bash中执行以下算术运算列表:

+, –

加、减

++, —

增量、减量

*, / , %

乘、除、余数

**

指数的值

示例 1:

$ ((x=10))

$ (( e = e + 5 ))

$ echo $e

示例 2:

$ ((x=10))

$ ((x--))

$ echo $e

示例 3:

$ ((x=10))

$ ((x=x**2))

$ echo $e

布尔和逻辑

bash数学还允许您在疑问括号内使用布尔和逻辑表达式来执行数学计算。

例:

$ ((x=10)); ((y=5))

if (( x > y )); then echo $x; fi

6c00ddcfe647c10b8a7516f1d2c8cf23.png

此示例比较两个变量,并仅在x大于y时输出x的值。

通过本文中提供的命令语法和示例,您现在可以通过Linux bash执行基本的数学运算。 这将作为您执行更复杂操作的基础,例如使用bash脚本编写程序。 此外,您还可以执行交互式数学,您可以从用户输入值,处理输入,然后根据这些值输出结果。

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值