树莓派3如何用单条命令执行bluetoothctl scan on扫描蓝牙设备
解决树莓派单条命令启动蓝牙扫描的问题
我明白你的困扰——之前用&&或者;的方式行不通,核心原因是scan on并不是Linux系统的独立命令,而是bluetoothctl交互环境里的内置指令,之前的写法会等bluetoothctl退出后才尝试执行scan on,自然会报错找不到命令。
这里有几个靠谱的单条命令解决方案,你可以按需选择:
最简洁的方式:直接传递命令给bluetoothctl
bluetoothctl本身支持直接在命令行指定要执行的内置指令,所以你只需要运行:bluetoothctl scan on这个命令会直接启动蓝牙扫描,并且持续输出附近发现的蓝牙设备信息,直到你按下
Ctrl+C停止扫描。管道输入方式
如果上面的方法因为版本问题不生效(比如旧版bluetoothctl不支持直接传命令),可以用管道把scan on命令输入到bluetoothctl的交互会话中:echo "scan on" | bluetoothctl这种方式会启动扫描,但有些情况下
bluetoothctl可能在执行完命令后自动退出,如果你需要持续查看扫描结果,第一种方法更合适。Here-String方式
和管道类似,用bash的here-string语法传递命令,写法更直观一点:bluetoothctl <<< "scan on"效果和管道方式一致,适合习惯这种语法的用户。
内容的提问来源于stack exchange,提问作者eunbit
相关产品推荐
相关产品推荐

