在Bash shell環境中,可以利用let、(( ))和[]來執行基本的算術運算。而在進行高級操作時,expr和bc這兩個工具也會非常有用.可以用普通的變數賦值方法定義數值,這時,它會被儲存為字串。然而,我們可以用一些方法使它能像數字一樣進行運算
(1) let 指令可以直接執行基本的算術運算。使用let時,變數名之前不需要再加$,
例如
[rhx@localhost Test]$ source 1.3.2.sh [rhx@localhost Test]$ let result=no1+no2 [rhx@localhost Test]$ echo $result
自加,自減,按步長加
[rhx@localhost Test]$ let no1++ [rhx@localhost Test]$ let no1-- [rhx@localhost Test]$ let no1+=6 [rhx@localhost Test]$ let no1-=6
運算子[]的使用方法和let指令類似:
[rhx@localhost Test]$ reslut=$[ no1+no2 ]
在[]中也可以使用$前綴,例如:
[rhx@localhost Test]$ reslut=$[ $no1+5
也可以使用(()),但使用(())時,變數名之前需要加上$:
result=$(( no1 + 50 )) expr同样可以用于基本算术操作: result=`expr 3 + 4` result=$(expr $no1 + 5)
以上這些方法只能用於整數運算,而不支援浮點數。
(2) bc是一個用於數學運算的高階工具,這個精密計算器包含了大量的選項。可以藉助它執行浮點數運算並應用一些高階函數:
[rhx@localhost Test]$ echo "4*0.56" | bc
#其他參數可以置於要執行的特定操作之前,同時以分號作為定界符,透過stdin傳遞給bc。
設定小數精確度。在下面的範例中,參數scale=2將小數位個數設定為2。因此,
bc將會輸出包含兩個小數位的數值。
[rhx@localhost Test]$ echo "scale=2;3/8"|bc
進位轉換。用bc可以將一種進位系統轉換為另一種。來看看如何將十進制轉換成二進制,然後再將二進制轉換回十進制:
#!/bin/bash
用途:數字轉換
[rhx@localhost Test]$ nu=100 [rhx@localhost Test]$ echo "obase=2;$nu"|bc
計算平方以及平方根。
echo "sqrt(100)" | bc #Square root
echo "10^10" | bc #Square
相關推薦:
#以上是Linux數值運算:let,(()),[ ]詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!