En plus d'utiliser ssh
pour exécuter des commandes sur l'hôte distant, vous pouvez utiliser Remote Apple Events, qui ont également une say
commande, ainsi que d'autres qui peuvent vous être utiles, comme display alert
.
Sur la machine cible, activez:
Préférences Système> Partage> Événements Apple distants
Ensuite, à partir de votre machine, exécutez le script suivant (dans AppleScript Editor ou via osascript
dans Terminal):
tell application "Finder" of machine "eppc://machine-name.local"
say "Hello"
end tell
Il vous demandera de vous authentifier lorsque vous compilerez ou exécuterez ceci. Si vous le faites dans AppleScript Editor, il se souviendra de l'authentification tant que vous laissez AppleScript Editor ouvert, vous n'aurez donc pas à vous authentifier chaque fois que vous l'exécuterez. (La boîte de dialogue d'authentification a également une option pour enregistrer vos informations d'identification sur le trousseau pour éviter d'être harcelé à plusieurs reprises.)
Vous pouvez le faire à partir de la ligne de commande dans Terminal avec:
osascript -e 'tell application "Finder" of machine "eppc://machine-name.local" to say "Hello"'
Comment afficher un message sur une machine distante
Vous pouvez également afficher un message en vous connectant à la machine distante avec ssh
† et en exécutant cette commande dans le shell distant (cela n'utilise pas les événements Apple distants, juste la connexion à distance pour ssh
):
osascript -e 'say "Hello" without waiting until completion' -e 'tell application "System Events"' -e 'activate' -e 'display alert "Hello!"' -e 'end'
La say
commande démarre le discours de manière asynchrone, puis cela amène les événements système au premier plan pour afficher le message pendant la lecture du discours.
† Les commandes qui affichent l'interface utilisateur, comme display alert
et display dialog
, ne sont pas autorisées via les événements Apple distants. Pour les envoyer à un processus sur une machine distante, vous devez d'abord passer par ssh
.