如何管道工具的输出以卷曲-X POST?

时间:2017-09-20 15:59:48

标签: curl sensor iot pipeline

我想在我的Raspberry Pi上使用./airsensor -v命令不断将程序curl -X POST的输出发送到Ubidots平台。

发送entropy_avail号码有效。

每当我发出以下命令时,我会在终端获得反馈,并且值显示在Ubidots中:

cat /proc/sys/kernel/random/entropy_avail | curl -X POST --data-urlencode value@- https://things.ubidots.com/api/v1.6/variables/[VARIABLE-ID]/values/?token=[TOKEN-ID]

Airsensor不断(每约15秒)输出一个数字:

./airsensor -v
450
453
452
457

...现在,如果我使用以下命令,它就无法工作。因为它根本没有给终端提供任何反馈。并且在Ubidots也没有收到任何价值。

./airsensor -v | curl -X POST --data-urlencode value@- https://things.ubidots.com/api/v1.6/variables/[VARIABLE-ID]/values/?token=[TOKEN-ID]

资源:

https://ubidots.com/docs/#send-one-value-to-ubidots

https://github.com/tuxedo0801/usb-sensors-linux/blob/master/airsensor/airsensor.c

https://github.com/tuxedo0801/usb-sensors-linux

1 个答案:

答案 0 :(得分:0)

使用-d @-从标准输入中读取curl,您可以使用以下方法进行测试:

echo "test $(date)" | curl -X POST -d @- http://httpbin.org/post

或尝试合并stderr& stdout您的应用可能只写入stderr

./your-app 2>&1 | curl -X POST -d @- http://httpbin.org/post

注意将{stderr重定向到stdout

2>&1