我在编写脚本时遇到了一些问题,如果有人可以帮助我,那就太好了!
我的脚本有:
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