用shell脚本的算术问题

我在编写脚本时遇到了一些问题,如果有人可以帮助我,那就太好了!

我的脚本有:

VISITS=$((WR + RD)); SERVICE_DEMAND=$((VISITS*SERVICE_DEMAND)); 

我得到这个错误:

./calc_serv_demand.sh:第12行:0.0895406:语法错误:无效算术运算符(错误标记为“.0895406”)

有人能帮我吗?

我认为这是因为bash只能使用整数…我需要使用浮点值,但是。

提前致谢


问题解决了:

VISITS = $(echo $ WR + $ RD | bc); echo $ VISITS

SERVICE_DEMAND = $(echo $ VISITS'*'$ SERVICE_TIME | bc); echo $ SERVICE_DEMAND

你可以使用bc来做你的浮点运算,即

 echo $WR + $RD | bc 

等等。

考虑改用更好的编程语言,而不是使用bc 。 Bash根本不适合数学。

使用bc 在Bash中进行浮点计算 。

要设置精确度(小数点右边答案的位数),写:

 WR=5 RD=7 VISITS=$[WR+RD] SERVICE_DEMAND=.0895406 SERVICE_DEMAND=`echo "scale=5; $VISITS * $SERVICE_DEMAND" |bc -l` echo Service Demand = $SERVICE_DEMAND 

这输出:

 Service Demand = 1.0744872 

比例= 5组5位精度; 反引号导致包含的表达式被评估,输出(来自bc -l )被分配给你的变量。

你将不得不使用像bc这样的外部程序在你的脚本中进行浮点运算。

就像是:

echo ($WR+$RD)*$SERVICE_DEMAND | bc