常用的有 expr , "scale ......" | bc 兩種運算方式,(使用awk 也可以實現運算: A=awk 'BEGIN{printf "%.2f\n",’$num1‘/’$num2‘}' )
還有 [] 的用法
# echo $[2+3]
5
# echo $[2*3]
6
先是exper :
例如 變量 $fre=5000 ,現在要除以 1024
A=`expr ${fre} / 1024` #除號"/" 的兩邊一定要空格才行
echo $A
結果:4 #這個默認是只輸出整數的
--------------------------------------------------------------------------------------------------------------------
其次是 bc 的用法,作用是控制輸出的精度,因為exper 的算法不支持浮點數,所以個人來說更喜歡用"scale...." | bc
scale用來確定精度,小數點后面多少位。
用法看一下測試腳本吧。
#!/bin/bash
#加減乘除發符號
fre=`free | awk '/Mem/ {print $4}'` #這里獲取剩余內存來賦予一個數,我的大概是 1.4G左右
ar1=1024
ar2=1025
echo "----expr----"
ar3=`expr $fre / $ar1 / $ar1`
echo $ar3
echo "`expr $fre / $ar1`"
echo "----bc----"
echo "scale=2;$fre / $ar1" | bc
echo "scale=3;$fre / $ar2 / $ar1" | bc
結果: