블루투스 연결을 전환하는 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
에 쓰는 것 같아요 . 이 경우 의 출력을 캡처하면서 전자를 후자에 병합하십시오 .STDERR
STDOUT
blueutil
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 등호 연산자입니다 .