极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10881|回复: 3

shell变量运算和赋值问题

[复制链接]
发表于 2015-5-7 23:38:12 | 显示全部楼层 |阅读模式
我在做一个电量表,先用arduino做一个web server,把功率读数放在web server上,就是192.168.0.198. 这个功率读数只是一个三位数的数字,没有header。
再用树莓派读取这个web server的功率读数,除以1000后用curl发送出去。
现在碰到下面的问题,shell 变量/1000再赋值的时候出错。下面是树莓派的代码。
不知道运算和赋值怎么处理。


[pre lang="bash" line="1"]#!/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://MjxxxjYyOTdiplotwatt.com/api/v2/push_readings

rm log
sleep 10
done[/code]
回复

使用道具 举报

发表于 2015-5-8 13:06:55 | 显示全部楼层
result="scale=3;${VALUE}/1000"|bc
|bc 是什么意思?看不懂
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-8 20:51:43 | 显示全部楼层
Jerry 发表于 2015-5-8 13:06
result="scale=3;${VALUE}/1000"|bc
|bc 是什么意思?看不懂

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

使用道具 举报

发表于 2015-5-29 16:40:37 | 显示全部楼层
result=`echo "scale=3;${VALUE}/1000"|bc`
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 16:26 , Processed in 0.040113 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表