如何让l2ping在蓝牙设备离线时仍持续ping 等同Windows ping -t效果
l2ping 持续 ping 蓝牙设备实现方案
原生l2ping没有内置设备离线后仍持续重试不退出的参数,目标设备断开连接时进程会直接返回错误结束,你可以通过shell死循环封装l2ping命令,实现类似Windows ping -t的效果。
基础实现
替换脚本中的MAC地址为你的目标蓝牙设备地址后运行即可:
#!/bin/bash # 填写目标蓝牙设备MAC地址 TARGET_BT_MAC="XX:XX:XX:XX:XX:XX" while true do l2ping -c 1 ${TARGET_BT_MAC} # 调整以下数值修改ping间隔,单位为秒 sleep 1 done
脚本会循环执行单次ping请求,无论当前设备是否在线都不会中断运行,设备重新上线后会立刻返回ping成功的响应。需要终止运行时按下Ctrl + C即可。
可选优化
静默运行不打印错误日志
不需要打印设备离线时的报错信息,可将错误输出丢弃:
l2ping -c 1 ${TARGET_BT_MAC} 2>/dev/null
设备上线自动触发通知
添加判断逻辑,设备从离线恢复上线时可触发自定义通知:
#!/bin/bash TARGET_BT_MAC="XX:XX:XX:XX:XX:XX" while true do # -t 1 设置单次ping超时时间为1秒,可自行调整 if l2ping -c 1 -t 1 ${TARGET_BT_MAC} >/dev/null 2>&1 then echo "提示:目标设备 ${TARGET_BT_MAC} 已上线,ping 连通成功" # 此处可追加你需要的其他通知逻辑,例如播放提示音、发送系统通知等 fi sleep 1 done
内容的提问来源于stack exchange,提问作者EGMay
相关产品推荐
相关产品推荐

