加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash:在继续之前等待特定的命令输出

发布时间:2020-12-15 21:00:37 所属栏目:安全 来源:网络整理
导读:我知道有几个帖子提出类似的事情,但没有一个解决我遇到的问题. 我正在编写一个脚本来处理与不同蓝牙低功耗设备的连接,使用gatttool从一些句柄读取,并使用这些值动态创建.json文件. 我遇到的问题是gatttool命令需要一段时间才能执行(由于设备繁忙或类似的消息
我知道有几个帖子提出类似的事情,但没有一个解决我遇到的问题.

我正在编写一个脚本来处理与不同蓝牙低功耗设备的连接,使用gatttool从一些句柄读取,并使用这些值动态创建.json文件.

我遇到的问题是gatttool命令需要一段时间才能执行(由于设备繁忙或类似的消息,并不总是成功连接到设备).这些“错误”不仅会在错误的数据中转换为填充.json文件,而且还允许脚本行继续写入文件(例如,添加额外的}或类似文件).我正在使用的命令的示例如下:

sudo gatttool -l high -b <MAC_ADDRESS> --char-read -a <#handle>

我怎样才能以等待某个输出的方式处理这个问题?在这种情况下,使用gatttool进行-char-read时的理想输出是:

Characteristic value/description: some_hexadecimal_data`

这样我可以确保我逐行跟踪脚本而不是这些“跳转”.

解决方法

grep允许您为正在查找的数据过滤gatttool的输出.

如果您实际上正在寻找一种等待直到遇到特定输出的方法,那么expect可能就是您正在寻找的.

从联机帮助页:

expect [[-opts] pat1 body1] ... [-opts] patn [bodyn]
         waits  until  one of the patterns matches the output of a spawned
         process,a specified time period has passed,or an end-of-file is
         seen.  If the final body is empty,it may be omitted.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读