私はそれを使用しています密な波管理ステータスバーには、dwmblocks
デバイスが接続されたときにいくつかの情報やステータスを表示するBluetoothスクリプトを含む、ステータスに対して実行される複数のモジュール/スクリプトがあります。
#!/bin/bash
case $BLOCK_BUTTON in
1) setsid -f blueman-manager ;;
2) notify-send "$icon Device Connected" "$(if [[ "$(bluetoothctl info)" != "Missing device address argument" ]]; then
echo= "$(bluetoothctl info | grep "Name" | awk '{print $2}')"
else
echo= "No Device Connected" )" ;;
3) notify-send "$icon Bluetooth" "\- Show Bluetooth Status.
- Click to open Bluetooth Manager.
- Middle click to show Connected Devices." ;;
esac
if [[ "$(bluetoothctl info)" != "Missing device address argument" ]]; then
icon=" "
else
icon=" "
fi
printf "%s%s\\n" "$icon"
スクリプトはうまく機能しますが、中間クリック操作
2) notify-send "$icon Device Connected" "$(if [[ "$(bluetoothctl info)" != "Missing device address argument" ]]; then
echo= "$(bluetoothctl info | grep "Name" | awk '{print $2}')"
else
echo= "No Device Connected" )" ;;
何も表示されません。デバイスを接続すると、「デバイス接続 - (デバイス名)」が表示されます。それ以外の場合は、「接続されていないデバイス」が表示されますが、クリック操作が機能しないようです。空の通知も表示されません。
答え1
問題のある人のために
#!/bin/sh
case $BLOCK_BUTTON in
1) setsid -f blueman-manager ;;
2) notify-send "$icon Device Connected" "$(if [ "$(bluetoothctl info)" != "Missing device address argument" ]; then
echo= bluetoothctl info | grep "Name" | awk '{print $2}'
else
echo 'No Device Connected'
fi )" ;;
3) notify-send "$icon Bluetooth" "\- Show Bluetooth Status.
- Click to open Bluetooth Manager.
- Middle click to show Connected Devices." ;;
esac
if [ "$(bluetoothctl info)" != "Missing device address argument" ]; then
icon=" "
else
icon=" "
fi
printf "%s\\n" "$icon"
これが私が変えたものです。
2) notify-send "$icon Device Connected" "$(if [ "$(bluetoothctl info)" != "Missing device address argument" ]; then
echo= bluetoothctl info | grep "Name" | awk '{print $2}'
else
echo 'No Device Connected'
fi )" ;;
- IF文が閉じられていない場合は閉じました。
- echoはコマンドの代わりに実行され、最初の引数が「欠落しているデバイスアドレスパラメータ」と等しくないという要件を満たすと失敗します。
- 接続されているデバイスがない場合、echoはコマンドの代わりに実行され、失敗します。接続されているデバイスがないというメッセージのみを表示したいです。
詳細については、このリソース(https://github.com/koalaman/shellcheck/wiki/SC2091)
printf "%s\\n" "$icon"
元のスクリプトは2つの文字列を提供しますが、渡すだけです。