Como usar o Terminal para enviar pressionamentos de tecla?


12

Existe uma maneira do Terminal simular o pressionamento de várias teclas ao mesmo tempo? Por exemplo, Shift + Ctrl + R?

Estou sshentrando no OS X a partir de um cliente Windows (PuTTY) e estou pensando se preciso configurar o cliente ou se existe uma maneira nativa do OS X emular esses comandos no terminal de recebimento.


Trata-se de usar o terminal para enviar atalhos de teclado. Especificamente, preciso enviar ctrl + opt + shift + e. Preciso fazer isso sem o AppleScript, como é de um computador Windows, usando o que presumo ser algum tipo de simulador de terminal ou SSH do cmd.
User84019

AppleScript trabalha sobre SSH usando osascript. A resposta abaixo é totalmente funcional sobre SSH, desde que uma GUI esteja presente na máquina OS X.
grg

Respostas:


8

Você pode usar AppleScript no terminal:

osascript -e 'tell application "System Events" to keystroke "r" using {control down, shift down}'

Quando tento isso, recebo uma nova linha com ">"?
user84019

É programa específico? Por exemplo, se eu quiser digitar "E" no TextEdit, digite "osascript -e 'diga ao aplicativo" System Events "para pressionar a tecla" e "usando {shift down}'"?
precisa saber é o seguinte

2
Ok, estou tentando digitar ctrl + opt + shift + e, e tenho "osascript -e 'diga ao aplicativo" System Events "para pressionar" e "usando {control down, shift down, option down}'", mas me diz "48:55: erro de sintaxe: um identificador não pode seguir esse" "". (-2740) "
user84019 01/07/19

As teclas são inseridas exatamente como seriam se fossem digitadas manualmente; eles não são específicos para cada aplicativo. Se quiser digitar um pressionamento de tecla em um aplicativo, use `osascript -e 'diga ao aplicativo" AppName "para ativar'. Isso iniciará o aplicativo se ele ainda não estiver aberto e também o trará em primeiro plano (ou seja, o nome será exibido na barra de menus). Você pode usar o código @grg fornecido na resposta acima.
precisa

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.