管道超时cmd到grep需要root



此处为bash noob。试图为家庭助理编写一行BLE标签存在检测器(RPI-3上内置的BLE模块大大降低了家庭助理的速度)。

需要一些帮助来完成这项工作:

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

正在发生的(或应该发生的):

  1. hcitool运行5s(在优雅地杀死5s之后)
  2. 输出通过管道传输到grep,用于检测一个特定的MAC
  3. 命令返回匹配的mac

但是,此命令不返回任何内容,只返回状态代码130($echo$?)

然而,这是有效的:

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

是的,我已经设置了这篇文章中描述的缺失的帽子:https://unix.stackexchange.com/questions/96106/bluetooth-le-scan-as-non-root

由于设置的功能,这也可以正常工作(返回检测到的设备列表,在5秒钟后优雅地终止:

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

我做错了什么?为什么管道到grep似乎需要root?(因为我知道不应该)

致问候,

Stephan

Ah解决了它;)

按照执行顺序:)。使用sudo与使用效果相同

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

相关内容

  • 没有找到相关文章