使用 bluetoothctl 输出通知

使用 bluetoothctl 输出通知

我使用的是 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!"

相关内容