dwmblocks 블루투스 모듈. 연결된 장치 이름을 표시하는 방법은 무엇입니까?

dwmblocks 블루투스 모듈. 연결된 장치 이름을 표시하는 방법은 무엇입니까?

나는 그것을 사용하고 있다조밀한 파도 관리상태 표시줄 의 경우 dwmblocks장치가 연결될 때 일부 정보와 상태를 표시하는 블루투스 스크립트를 포함하여 상태에 대해 실행되는 여러 모듈/스크립트가 있습니다.

 #!/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 )" ;;
  1. IF 문이 닫히지 않은 경우 닫았습니다.
  2. echo는 명령 대체로 실행되며 첫 번째 인수가 "누락된 장치 주소 매개변수"와 같지 않음"이라는 요구 사항을 충족하면 실패합니다.
  3. 연결된 장치가 없으면 echo가 명령 대체로 실행되어 실패합니다. 연결된 장치가 없다는 메시지만 표시되기를 원합니다.

자세한 내용은 이 리소스(https://github.com/koalaman/shellcheck/wiki/SC2091)

    printf "%s\\n" "$icon"

원본 스크립트는 2개의 문자열을 제공하지만 전달만 합니다.

관련 정보