В дополнение к использованию ssh
для запуска команд на удаленном хосте, вы можете использовать Remote Apple Events, которые также имеют say
команды, а также другие, которые могут быть вам полезны, например display alert
.
На целевой машине включите:
Системные настройки> Общий доступ> Удаленные события Apple
Затем с вашего компьютера запустите следующий скрипт (в редакторе AppleScript или через osascript
терминал):
tell application "Finder" of machine "eppc://machine-name.local"
say "Hello"
end tell
Он попросит вас подтвердить подлинность, когда вы скомпилируете или запустите это. Если вы сделаете это в AppleScript Editor, он будет помнить аутентификацию, пока вы оставляете AppleScript Editor открытым, поэтому вам не придется проходить аутентификацию каждый раз, когда вы запускаете это. (В диалоге аутентификации также есть возможность сохранить свои учетные данные в связке ключей, чтобы избежать многократного проникновения.)
Вы можете сделать это из командной строки в терминале с помощью:
osascript -e 'tell application "Finder" of machine "eppc://machine-name.local" to say "Hello"'
Как отобразить сообщение на удаленной машине
Вы также можете отобразить сообщение, ssh
выполнив вход на удаленный компьютер с помощью † и выполнив эту команду в удаленной оболочке (для этого не используются удаленные события Apple, просто для удаленного входа в систему ssh
):
osascript -e 'say "Hello" without waiting until completion' -e 'tell application "System Events"' -e 'activate' -e 'display alert "Hello!"' -e 'end'
Команда say
запускает речь асинхронно, а затем выводит системные события на передний план для отображения сообщения во время воспроизведения речи.
† Команды, отображающие пользовательский интерфейс, такие как display alert
и display dialog
, не разрешены через удаленные события Apple. Чтобы отправить их процессу на удаленной машине, сначала нужно пройти ssh
.