我在编写脚本方面遇到了一些问题...如果有人可以帮助我,那就非常好!
我的脚本有:
VISITS=$((WR + RD));
SERVICE_DEMAND=$((VISITS*SERVICE_DEMAND));
我收到了这个错误:
./ calc_serv_demand.sh:第12行: 0.0895406:语法错误:算术运算符无效(错误标记为 ” 0.0895406" )
有人能帮助我吗?
我认为这是因为bash仅适用于整数...但我需要使用浮点值。
提前致谢
问题解决了:
VISITS = $(echo $ WR + $ RD | bc); echo $ VISITS
SERVICE_DEMAND = $(echo $ VISITS'*'$ SERVICE_TIME | bc); echo $ SERVICE_DEMAND
答案 0 :(得分:5)
您可以使用bc
进行浮点计算,即
echo $WR + $RD | bc
等等。
答案 1 :(得分:3)
不要使用bc
,而应考虑切换到更好的编程语言。 Bash根本不适合数学。
答案 2 :(得分:2)
使用bc
执行float calculations in Bash。
答案 3 :(得分:2)
设置精度(小数点右边答案的位数), 写:
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
scale = 5 设置5位精度;反引号导致包含的表达式 评估并将输出(来自 bc -l </ strong>)分配给您的变量。
答案 4 :(得分:1)
您必须使用像bc
这样的外部程序在脚本中执行浮点数学运算。
类似的东西:
echo ($WR+$RD)*$SERVICE_DEMAND | bc