在bash shell中可以利用let、(())和[]執行基本呢的算數運算。而在進行高級操作時,可以利用expr和bc兩個工具進行計算。
1、let命令可以直接執行基本的算數計算。當使用let時,變量名之前不許要再添加$。
let result=num1+num2
#!/bin/bash
a=5
b=6
let result=a*b
echo $result
let result*=result #注意此行,變量與符號之間不能有空格
echo "the result is $result"
結果為
30
the result is 900
2、操作符[]的使用方法和let命令相似。
result=$[num1+num2 ]注意等號兩邊不能有空格
在[]中也可以用$前綴。
#!/bin/bash
a=5
b=6
result=$[a+b ]
echo "The result is $result"
result=$[$a+$a ]
echo "the result is $result"
結果為
The result is 11
the result is 10
3、使用(())也可以進行計算,但在使用(())時,變量名前需要加上$.
result=$((num1 +num2 ))
#!/bin/sh
num1=5
num2=6
result=$((num1+num2))
echo "the result is $result"
結果為:
the result is 11
4、expr同樣可以用於基本的數據操作
result=`expr4+5`
result=$(expr$num1+2)
實例:
#!/bin/sh
num1=5
num2=6
result=$(expr$num1 + $num2) #注意$num1和$num2與+之間一定要有空格
echo "the result is $result"
結果為:
the result is 11
以上這些方法只能用與整數的計算,而不支持浮點數的計算。
bc是一個用於數學運算的高級工具。這是一個精密計算器包含了大量的選項。我們可以借助它執行浮點數運算,並應用一些高級函數。
echo "4*6.4" |bc
設定小數精度。參數scale=2將小數位數個數設置為2.
echo "scale=2;13/8" | bc
1.62
用bc進行進制轉換。進制轉換設置參數obase=進制數。
#!/bin/bash
no=100
echo "obase=2;$no" |bc
no=111111
echo "obase=10;ibase=2;$no" |bc
結果為:
1100100
63
用bc計算平方及平方根
echo "sqrt(100)" |bc
10
echo "10^10" |bc
10000000000