如何在Linux命令行中进行基本的数学运算

2021-06-08 10:12:53 浏览数 (1)

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

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

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

expr命令

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

加法

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

$ expr number1 number2

示例:

$ expr 100 90

减法

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

$ expr number1 – number2

示例:

$ expr 100 - 27

乘法

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

$ expr number1 * number2

示例:

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

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

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

除法

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

$ expr number1 / number2

示例:

$ expr 110 / 10

增加变量

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

$ count_variable=9

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

$ count_variable=`expr $count_variable 7`

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

$ echo $count_variable

比对

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

$ expr number1 > number2

示例:

$ expr 16 > 11

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

示例:

$ expr 11 > 26

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

$ expr number1 = number2

示例s:

$ expr 19 = 19

$ expr 11 = 15

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

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

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

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

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

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

$ average=20

$ expr $average = 20

高效地使用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

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

jot命令

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

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

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

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

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

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

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

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

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

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

$ jot x y

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

$ jot 6 2

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

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

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

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

$ jot x y z

以下的例子会让你明白:

$ jot 5 10 1

我们的示例输出反向显示数字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

这是输出:

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

factor命令

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

语法:

$ factor numbe

示例:

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

bc命令

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

$ echo “math_expression” | bc

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

示例:

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

计算π

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

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

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

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

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

由于是保留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

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

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

更多Linux命令相关信息见Linux命令大全 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=16

0 人点赞