首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cron作业和shell脚本拆分字符串并发送到SparkCore?

Cron作业和shell脚本拆分字符串并发送到SparkCore?
EN

Stack Overflow用户
提问于 2015-03-31 06:50:07
回答 2查看 246关注 0票数 0

我想使用selfspy跟踪点击、击键和鼠标移动,然后使用cron作业运行shell脚本,使用(我相信) sed拆分字符串,并通过curl将信息发送到SparkCore。有人能帮我解决这个sed部分吗?

bash命令selfstats --clicks返回以下内容:

代码语言:javascript
复制
$ selfstats --clicks
5006 keystrokes in 407 key sequences, 2791 clicks (2361 excluding scroll), 157648 mouse movements

Mouse clicks:
2298 left
0 middle
26 right
143 up
287 down

在SparkCore方面,我想要的是:

代码语言:javascript
复制
clicks = 2791;
keystrokes = 5006;
mouseMovement = 157648;

到目前为止,我认为带有正确的sed命令的shell脚本应该如下所示:

代码语言:javascript
复制
# !/bin/bash

CLICKS="$(selfstats --clicks | sed)"
KEYSTROKES="$(selfstats --clicks | sed)"
MOUSE_MOVEMENT="$(selfstats --clicks | sed)"

curl https://api.spark.io/v1/devices/0123456789abcdef/programname \
    -d access_token=123412341234 -d clicks=$CLICKS

curl https://api.spark.io/v1/devices/0123456789abcdef/programname \
    -d access_token=123412341234 -d keystrokes=$KEYSTROKES

curl https://api.spark.io/v1/devices/0123456789abcdef/programname \
    -d access_token=123412341234 -d mouseMovement=$MOUSE_MOVEMENT
EN

回答 2

Stack Overflow用户

发布于 2015-04-01 02:36:37

重复解析相同的字符串是浪费和令人沮丧的。如果您使用的工具能够产生机器可读的输出,这将是最好的,但是如果它的输出格式是合理的静态的,那么您可以这样做

代码语言:javascript
复制
selfstats --clicks |
awk '{print $1,$7, $12 }' |
while read -r keystrokes clicks mousemovement; do
    :
done

在Bash中,您可以

代码语言:javascript
复制
read -r keystrokes clicks mousemovement <(selfstats --clicks |
awk '{print $1,$7, $12 }')

您应该选择小写的变量名,这既是为了让您的眼睛休息,也是因为大写是为shell内部使用保留的。

票数 0
EN

Stack Overflow用户

发布于 2015-04-02 10:36:31

好吧,我不能完全理解你发布的内容,但是awk的添加非常有帮助。shell脚本如下所示:

代码语言:javascript
复制
# !/bin/bash

activity="$(selfstats --clicks | sed '2,9d' | awk '{print $1,$7, $12 }')"

curl --silent https://api.spark.io/v1/devices/0123456789abcdef/echo \
  -d access_token=123412341234 -d "args=$activity"

所以,当我直接从终端运行它并检查串行监视器时,它工作得很好,给出了三个变量:5006 2791 157648,我可以在Spark Core一端拆分它。但是,当我将作业作为cron作业运行时,串行监视器只显示换行符。有什么想法吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29357702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档