2021-05-12 14:32:11
如何在Linux命令列中進行基本的數學運算
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指令碼編寫程式。 此外,您還可以執行互動式數學,您可以從使用者輸入值,處理輸入,然後根據這些值輸出結果。
相關文章