2017-01-31 2 views
0

ここにbash noobがあります。ホームアシスタント用の1行のBLEタグ存在検出機能を書き込もうとしています(RPI-3のBLEモジュールをビルドすると、ホームアシスタントが大幅に遅くなります)。配管タイムアウトcmd to grep need root

この作業を取得いくつかの助けが必要:

$ timeout -s SIGINT 5s hcitool -i hci0 lescan | grep 00:00:00:00:00:00 

何が起こっている(または何が起こってしなければならない):

  1. (5Sが優雅に殺された後)hcitoolが5秒間に実行される
  2. 出力されます特定のMACを検出するためにgrepにパイプされました
  3. コマンドは一致するMACを返します

しかし、このコマンドはこれがしかし働くもの、のみからstatusCode 130($エコー$?)

を返しません:

$ sudo timeout -s SIGINT 5s hcitool -i hci0 lescan | grep 00:00:00:00:00:00 

そして、はい、私はすでに、この中で説明行方不明のキャップをsettedスレッド:のでsetted能力のhttps://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root

、それは(5秒後に優雅に殺され、検出されたデバイスのリストを返す必要があるとして、これも動作します:

$ timeout -s SIGINT 5s hcitool -i hci0 lescan 

私は間違っていますか?なぜgrepへの配管は根を必要とするのでしょうか?

敬具

(私はそれがいけない知っているので)、

ステファン

答えて

0

ああ、それを解決しました。)

は・実行の:)のシーケンスに思えます。 sudoを使用すると、次のような効果が得られます。

$ (timeout -s SIGINT 5s hcitool -i hci0 lescan | grep 00:00:00:00:00:00)