別のMacに「発言」するにはどうすればよいですか?


19

私の家には2台のMac(iMacとMacBook Pro)があります。

sayコマンドラインユーティリティを使用してMBPに何かを入力し、インターホンシステムのようにiMacで読み上げたいと思います。

加えて、妻がiMacを使用している間に私の妻にメッセージを送信することは愉快かもしれません。

これはできますか?


回答:


26

2台のMacは同じ家にあるので、どちらも同じネットワーク上にあると思います。

まずRemote Login、Macでサウンドを出力したい場所でアクティベートする必要があります。

チェックボックスに移動しSystem Preferences > SharingてチェックしRemote Loginます。次に、コンピューターを使用して、ターミナルを開き、これを入力します

ssh <user>@<computer name.local>

<user>あなたの妻はどこにログインし<computer name>、他のコンピューターの名前です。

これで、まるであなたの妻のコンピューターでターミナルを開いているsayようになり、好きなようにできます。


イベントが見つかりません
-cbmeeks

@cbmeeksはいつですか?最後に行ったコマンドは何ですか?
ロイックウルフ

気にしないで。間違った。よく働く!lolありがとう
-cbmeeks

2
友人と一緒にコーディングするとき、私はこれを以前にやったことがあります!
モシェ

2
コマンドを1行に結合できますssh user@hostname 'say hello'
。– willWorkForCookies

20

sshリモートホスト上でコマンドを実行するために使用することに加えて、リモートアップルイベントも使用できます。これにはsayコマンドもありますdisplay alert

ターゲットマシンで、以下を有効にします。

システム環境設定>共有>リモートAppleイベント

次に、マシンから次のスクリプトを実行します(AppleScript Editorで、または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イベントを使用せず、単にRemote Login forを使用します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やなどのUIを表示するコマンドは、display dialogリモートAppleイベント経由では許可されません。それらをリモートマシン上のプロセスに送信するには、最初にを実行する必要がありますssh


1

また、OSXに組み込まれているリモートデスクトップまたは画面共有の使用を妨げるものは何もなく、ターミナルをスキップして通常のユーザーとしてログインするだけです。

その後、通常どおりsayを使用できます。または、テキストを音声に変換するアプリがたくさんあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.