yenan1001 发表于 2015-5-7 23:38:12

shell变量运算和赋值问题

我在做一个电量表,先用arduino做一个web server,把功率读数放在web server上,就是192.168.0.198. 这个功率读数只是一个三位数的数字,没有header。
再用树莓派读取这个web server的功率读数,除以1000后用curl发送出去。
现在碰到下面的问题,shell 变量/1000再赋值的时候出错。下面是树莓派的代码。
不知道运算和赋值怎么处理。


#!/bin/bash

while true
do
#读取网页的数值,存为log。 执行正确
wget 192.168.0.198 -O log

#读取log中的数值,赋值给变量VALUE。执行正确
while read VALUE
do
    echo "VALUE is "
done < log

#result赋值为 VALUE/1000               赋值不成功,什么值也没有
result="scale=3;${VALUE}/1000"|bc

#发送result的值                         执行正确
curl -X POST -d "3315472,$result" http://MjxxxjYyOTdi:@plotwatt.com/api/v2/push_readings

rm log
sleep 10
done

Jerry 发表于 2015-5-8 13:06:55

result="scale=3;${VALUE}/1000"|bc
|bc 是什么意思?看不懂

yenan1001 发表于 2015-5-8 20:51:43

Jerry 发表于 2015-5-8 13:06 static/image/common/back.gif
result="scale=3;${VALUE}/1000"|bc
|bc 是什么意思?看不懂

shell默认的运算都是整数的,不能计算浮点数。
加上bc就可以运算浮点数了。

贱客 发表于 2015-5-29 16:40:37

result=`echo "scale=3;${VALUE}/1000"|bc`
页: [1]
查看完整版本: shell变量运算和赋值问题