Как управлять беспроводной связью Bluetooth из командной строки?

Этот вопрос почти такой же, как мой предыдущий вопрос , но с одним существенным отличием; Я хочу включить / выключить Bluetooth из командной строки (bash или аналогичной), НЕ из AppleScript - ответы на это, которые я видел у суперпользователя, все использовали AppleScript.

Я предполагаю, что это networksetupможет быть полезно, но понятия не имею, с каким интерфейсом (ами) взаимодействовать - мне нужен ответ, включающий полную команду, которую я могу запустить (и понять) - если модель устройства имеет значение, это Snow Leopard MacBook2,1, MacBook7,1кроме MacBook5,1, а если можно сделать только для 6,1 и 7,1 это нормально.

Вы можете запустить AppleScript из командной строки osascript -e "<applescript goes here>", если всплывающие окна — единственная проблема, с которой вы столкнулись при его использовании.
Мне не нравится AppleScript как язык; он имеет тенденцию быть многословным.
Кроме того, вспомогательные устройства не включены, и я не могу управлять этим компьютером.

Ответы (3)

Blueutil — небольшой удобный инструмент командной строки для этого. Это бесплатно и поставляется с исходным кодом. Если у вас установлен homebrew , вы можете установить его черезbrew install blueutil.

Применение:

Распечатать статус Bluetooth
blueutil

Включите Bluetooth
blueutil --power 1 илиblueutil -p 1

Выключите Bluetooth
blueutil --power 0 илиblueutil -p 0

Прекрасно работает на Macbook Pro под управлением Lion (10.7.3) и Mac mini под управлением Snow Leopard (10.6.8). Вы получите некоторые ошибки, если выключите Bluetooth, когда подключена волшебная мышь, хотя она все еще работает :)

Спасибо. Я приму это в ближайшее время, но не хочу принимать в течение 6 часов после публикации (если вы можете сделать это, ничего не загружая, просто используя встроенную OS X, это также было бы очень хорошо, поэтому я жду, чтобы увидеть, если кто-то предполагает, что).
@Andrew Другой способ сделать это, ничего не загружая, — убить (и перезапустить) процесс демона Bluetooth (синий) следующим образом. Тем не менее, я бы рекомендовал не использовать этот метод , так как он портит панель настроек Bluetooth и значок состояния Bluetooth в строке меню, так как теперь они больше не смогут обновляться. Чтобы остановить демон Bluetooth: sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist. Чтобы перезапустить демон Bluetooth:sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist
@ Эндрю А, я только что заметил в предыдущем комментарии, что ты сказал, что не можешь «админить на этом компьютере». Если я правильно понял, то мой предыдущий комментарий не будет работать, так как вам нужно ввести пароль администратора, чтобыsudo
Все в порядке, blueutilработал нормально.
blueutil содержит сомнительный код. Он пытается использовать osax под названием XMail. XMail — это бесплатная операционная система для Mac OS X, позволяющая отправлять электронную почту с помощью AppleScript. Будьте осторожны с программным обеспечением, которому вы даете права администратора. Вот сообщение, которое я получил в терминале, когда запустил программу установки, но до того, как я авторизовал права администратора. Ошибка при загрузке /Library/ScriptingAdditions/XMail.osax/Contents/MacOS/XMail: dlopen(/Library/ScriptingAdditions/XMail.osax/Contents/MacOS/XMail, 262): подходящее изображение не найдено.
Я не давал ему права администратора. Я просто скопировал бинарник.
Да, просто скопировал бинарник в /usr/local/bin. Но где этот сомнительный код? Взглянул на включенный источник, и он выглядел законным, но не собирал его.
Это был отличный ответ, и, кстати, вы можете brew install blueutilлегко его установить. Они вроде поменяли флаги командной строки, используйте blueutil power 1для включения блютуза.
И blueutil power 0выключить.
В основном ожидалось, что старый ответ Mac не сработает на новых машинах на базе Intel, но он работает и для macOS High Sierra 10.13.6! Это было чудесно, так как моя служба Bluetooth снова не принимала мои устройства после входа в систему сегодня утром. Это позволило переключить службу, когда Pref Pane не было! Мне также нравятся более короткие команды, которые сообщество поддерживает в некоторых случаях, в отличие от другого launchctlответа ниже. blueutil -p <\d>у меня сработало, как в этом ответе, в отличие от комментариев выше.

Следующее сработало для меня (OSX 10.7.5), чтобы включить Bluetooth из командной строки (используя команды, найденные здесь ):

sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 1

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist

(Я столкнулся с проблемой, что я отключил bluetooth, а затем при следующем запуске системы я больше не мог использовать беспроводную клавиатуру... поэтому вход с экрана невозможен, но я мог войти через ssh. И мне это было непонятно. как установить программное обеспечение, например, blueutilиз командной строки, как предложил @binarybob)

Я не могу sudo на этом компьютере, согласно одному из моих других комментариев, но это все равно приятно знать. Я распаковал blueutil графически, а затем запустил исполняемый файл из командной строки, так что я должен был уже его настроить.
Как ранее сказал в своем комментарии бинарник , это может запутать графический интерфейс.

Этот инструмент командной строки Mac с открытым исходным кодом предположительно делает это и многое другое:

https://github.com/guarinogabriel/Mac-CLI

Лучший инструмент для управления вашим Mac. Он предоставляет огромный набор команд командной строки, которые автоматизируют использование вашей системы OS X.