Як я можу "сказати" іншому Mac?


19

У нас вдома є два Mac (iMac та MacBook Pro).

Я хотів би скористатися sayутилітою командного рядка, щоб набрати щось на моєму MBP, щоб він говорив на iMac, а не як домофон.

Плюс до цього, може бути веселим надсилати повідомлення дружині, коли вона використовує iMac.

Це можна зробити?


2
Пов’язано: XKCD 530 xkcd.com/530
Ендрю Грімм

Відповіді:


26

Оскільки два Mac знаходяться в одному будинку, я припускаю, що вони обидва в одній мережі.

Перш за все, вам потрібно активувати Remote Loginна Mac там, де ви хочете звук.

Перейдіть System Preferences > Sharingі поставте Remote Loginпрапорець. Потім, за допомогою комп'ютера, відкрийте Terminal і введіть це

ssh <user>@<computer name.local>

Де <user>увійти ваша дружина та <computer name>ім’я іншого комп’ютера.

Тепер так, ніби у вас на комп’ютері дружини відкритий термінал, і ви можете робити sayвсе, що завгодно.


там сказано, що події не знайдено
cbmeeks

@cbmeeks коли? яка остання команда ви зробили?
Loïc Wolff

не зважай. Я зробив це неправильно. працює чудово! lol дякую
cbmeeks

2
Я робив це раніше, коли кодування поряд з другом, чудова відповідь!
Моше

2
Ви можете об'єднати команди в один рядок:ssh user@hostname 'say hello'
willWorkForCookies

20

Крім використання sshдля запуску команд на віддаленому хості, ви можете використовувати віддалені події Apple, які також мають sayкоманду, а також інші, які можуть бути корисними для вас, наприклад display alert.

На цільовій машині увімкніть:

Налаштування системи> Обмін> Віддалені події Apple

Потім зі свого комп'ютера запустіть наступний сценарій (в редакторі AppleScript або через osascriptтермінал):

tell application "Finder" of machine "eppc://machine-name.local"
    say "Hello"
end tell

Він попросить вас підтвердити автентифікацію, коли ви компілюєте або запускаєте це. Якщо ви це зробите в редакторі AppleScript, він запам'ятовує аутентифікацію до тих пір, поки ви не залишите 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.


1

Знову ж таки, ніщо не заважає вам використовувати віддалений робочий стіл або спільний доступ до екрана, який вбудований в OSX, і просто увійти як звичайний користувач, пропустивши термінал.

Тоді ви можете використовувати сказати нормально. Або є багато додатків, які перекладають текст на мовлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.