bin/bash 스크립트: 블루투스 상태를 전환하시겠습니까?

bin/bash 스크립트: 블루투스 상태를 전환하시겠습니까?

블루투스 연결을 전환하는 alfred 워크플로를 수행하려고 합니다.

STATUS=$(/usr/local/bin/blueutil status)

if [ $STATUS == "on" ]
then
/usr/local/bin/blueutil off
echo "off"
else
/usr/local/bin/blueutil on
echo "on"
fi

내가 여기서 뭘 잘못하고 있는 거지?

아무것도 하지 않습니다.

답변1

나는 그것이 to 와 not blueutil에 쓰는 것 같아요 . 이 경우 의 출력을 캡처하면서 전자를 후자에 병합하십시오 .STDERRSTDOUTblueutil

STATUS=$(/usr/local/bin/blueutil status 2>&1)

또한 출력 여부를 확인하고 싶습니다.포함 on, 그래서 대신:

if [ $STATUS == "on" ]

말하다:

if [[ $STATUS == *on ]]

대신에성냥원하는 문자열.

답변2

blueutil은 이제 상태가 단어가 아닌 '1' 또는 '0'으로 반환되는 방식으로 약간 다르게 작동합니다. 다음은 블루투스 상태를 전환하는 스크립트입니다. Google을 통해 이 페이지를 방문한 다른 사람들에게 도움이 될 수 있습니다.

#!/bin/bash
STATE=$(/usr/local/bin/blueutil -p)
((STATE ^= 1))
/usr/local/bin/blueutil -p $STATE

^=변수를 0과 1 사이에서 뒤집는 비트 XOR 등호 연산자입니다 .

관련 정보