在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
相關推薦:
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END