En plus d'utiliser ssh
pour exécuter des commandes sur l'hôte distant, vous pouvez utiliser les événements Apple distants, qui ont également une fonction 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 à distance
Ensuite, depuis votre machine, exécutez le script suivant (dans l'éditeur AppleScript, ou via osascript
dans le terminal) :
tell application "Finder" of machine "eppc://machine-name.local"
say "Hello"
end tell
Il vous demandera de vous authentifier lorsque vous le compilerez ou l'exécuterez. Si vous le faites dans l'éditeur AppleScript, il se souviendra de l'authentification tant que vous laisserez l'éditeur AppleScript ouvert, de sorte que vous n'aurez pas à vous authentifier à chaque fois que vous l'exécuterez. (La boîte de dialogue d'authentification comporte également une option permettant d'enregistrer vos informations d'identification dans 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 aussi 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 à distance, mais seulement la connexion à distance pour les événements Apple à distance). ssh
) :
osascript -e 'say "Hello" without waiting until completion' -e 'tell application "System Events"' -e 'activate' -e 'display alert "Hello!"' -e 'end'
El say
lance le discours de manière asynchrone, ce qui fait intervenir les événements système pour afficher le message pendant la lecture du discours.
† Commandes qui affichent l'interface utilisateur, par exemple display alert
y display dialog
ne sont pas autorisés via les événements Apple à distance. Pour les envoyer à un processus sur une machine distante, vous devez d'abord passer par ssh
.