Comment utiliser Terminal pour envoyer des frappes?

12

Existe-t-il un moyen pour Terminal de simuler la pression de plusieurs touches à la fois? Par exemple, Maj + Ctrl + R?

J'utilise sshOS X à partir d'un client Windows (PuTTY) et je me demande si j'ai besoin de configurer le client ou existe-t-il un moyen natif pour OS X d'émuler ces commandes du côté de la réception.

user84019
la source
Il s'agit d'utiliser un terminal pour envoyer des raccourcis clavier. Plus précisément, je dois envoyer ctrl + opt + shift + e. Je dois le faire sans AppleScript, car c'est à partir d'un ordinateur Windows, en utilisant ce que je suppose être une sorte de simulateur de terminal, ou SSH de cmd.
user84019
AppleScript fonctionne sur SSH en utilisant osascript. La réponse ci-dessous est entièrement fonctionnelle sur SSH à condition qu'une interface graphique soit présente sur la machine OS X.
grg

Réponses:

8

Vous pouvez utiliser AppleScript sur le terminal:

osascript -e 'tell application "System Events" to keystroke "r" using {control down, shift down}'
grg
la source
Quand j'essaye, je reçois juste une nouvelle ligne avec ">"?
user84019
Est-ce un programme spécifique? Par exemple, si je veux taper "E" dans TextEdit, devrais-je taper "osascript -e 'Tell application" System Events "pour taper" e "en utilisant {shift down}'"?
user84019
2
D'accord, j'essaye de taper ctrl + opt + shift + e, et j'ai "osascript -e 'dire à l'application" System Events "d'appuyer sur" e "en utilisant {control down, shift down, option down}'" mais il me dit "48:55: erreur de syntaxe: un identifiant ne peut pas aller après ce" "". (-2740) "
user84019
Les frappes sont saisies exactement comme elles le seraient si elles étaient saisies manuellement; ils ne sont pas spécifiques à chaque application. Si vous souhaitez saisir une touche dans une application, utilisez `osascript -e 'pour dire à l'application" AppName "d'activer'. Cela lancera l'application si elle n'est pas déjà ouverte et l'amènera également au premier plan (c'est-à-dire que son nom apparaît dans la barre de menu). Vous pouvez ensuite utiliser le code @grg fourni dans sa réponse ci-dessus.
Peter Schorn
3

l'outil shell cliclick est assez génial. envoie des frappes, des clics, toutes sortes de choses

https://github.com/BlueM/cliclick

boulder_ruby
la source
boulder_ruby - une excellente solution, une grande référence. Êtes-vous l' cliclickauteur?
Johnny Utahh
1
@JohnnyUtahh c'est un point négatif, juste un nerd obsédé par l'automatisation
boulder_ruby