我使用的是 22.04,我创建了一个 bash 脚本来断开我的蓝牙扬声器。您可以在下面看到代码
#!/bin/sh
bluetoothctl disconnect macID
notify-send "Soundbar Disconnected!"
虽然它可以很好地满足我的需求,因为我将它作为桌面快捷方式,但对于我来说现在只需单击一下即可断开连接。
我想知道是否可以显示bluetootctl
命令的输出消息而不是预定义的文本。即,如果没有连接扬声器,输出将会有所不同。
我试过了echo blutoothctl.output
,但没用。如果能得到一些帮助就好了。谢谢。
答案1
简洁的回答:
$ man bash
然后键入
/Command\ Substitution
以查找 的描述$(...)
,
/Special\ Parameters
以及$?
$ . /etc/os-release; echo $NAME $VERSION # 如果重要 Ubuntu 20.04.6 LTS(焦点窝) $已保存=“$(蓝牙连接00:09:DD:10:48:F9)” $ 回显 $? 1 $ echo $saved 尝试连接到 00:09:DD:10:48:F9 [CHG] 设备 00:09:DD:10:48:F9 已连接:是 [CHG] 设备 00:09:DD:10:48:F9 ServicesResolved:是 连接失败:org.bluez.Error.NotAvailable $ echo $saved | od -t x1z 0000000 41 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 63 6f >尝试合作< 0000020 6e 6e 65 63 74 20 74 6f 20 30 30 3a 30 39 3a 44 >连接到 00:09:D< 0000040 44 3a 31 30 3a 34 38 3a 46 39 20 5b 01 1b 5b 30 >D:10:48:F9 [..[0< 0000060 3b 39 33 6d 02 43 48 47 01 1b 5b 30 6d 02 5d 20 >;93m.CHG..[0m.] < 0000100 44 65 76 69 63 65 20 30 30 3a 30 39 3a 44 44 3a >设备 00:09:DD:< 0000120 31 30 3a 34 38 3a 46 39 20 43 6f 6e 6e 65 63 74 >10:48:F9 连接< 0000140 65 64 3a 20 79 65 73 20 5b 01 1b 5b 30 3b 39 33 >ed: 是 [..[0;93< 0000160 6d 02 43 48 47 01 1b 5b 30 6d 02 5d 20 44 65 76 >m.CHG..[0m.] Dev< 0000200 69 63 65 20 30 30 3a 30 39 3a 44 44 3a 31 30 3a >ice 00:09:DD:10:< 0000220 34 38 3a 46 39 20 53 65 72 76 69 63 65 73 52 65 >48:F9 服务回复< 0000240 73 6f 6c 76 65 64 3a 20 79 65 73 20 46 61 69 6c >已解决:是失败< 0000260 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 3a 20 6f >ed 连接: o< 0000300 72 67 2e 62 6c 75 65 7a 2e 45 72 72 6f 72 2e 4e >rg.bluez.Error.N< 0000320 6f 74 41 76 61 69 6c 61 62 6c 65 0a >ot可用。< 0000334 $
答案2
设法使用函数,然后将输出分配给变量。然后 echo 和notify-send 就可以工作了
#!/bin/sh
myoutput () {
bluetoothctl disconnect macID
}
myoutput
VAR=$(myoutput)
echo "${VAR} , is the output"
notify-send "${VAR} | Soundbar Disconnected!"