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 number
示例:
在上面的示例中,您可以看到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脚本编写程序。 此外,您还可以执行交互式数学,您可以从用户输入值,处理输入,然后根据这些值输出结果。