0

selfspyを使用してクリック、キーストローク、マウスの動きを追跡し、cron ジョブを使用してシェル スクリプトを実行し、文字列を分割して (私は信じています) sed、情報をcurlSparkCore に送信します。sed誰かがこの部分で私を助けることができますか?

bash コマンドselfstats --clicksはこれを返します。

$ 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 側で必要なのは次のとおりです。

clicks = 2791;
keystrokes = 5006;
mouseMovement = 157648;

sedこれまでのところ、正しいコマンドを使用すると、シェル スクリプトは次のようになると思います。

# !/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
4

2 に答える 2

0

同じ文字列を繰り返し解析するのは無駄でイライラします。使用するツールが機械可読な出力を生成できるのが最善ですが、その出力形式がかなり静的である場合は、それを行うことができます

selfstats --clicks |
awk '{print $1,$7, $12 }' |
while read -r keystrokes clicks mousemovement; do
    :
done

Bashでは、次のことができます

read -r keystrokes clicks mousemovement <(selfstats --clicks |
awk '{print $1,$7, $12 }')

目を休ませるためにも、大文字はシェルの内部使用のために予約されているため、小文字の変数名を使用することをお勧めします。

于 2015-03-31T18:36:36.687 に答える