Envie pressionamentos de tecla para um processo no console

2

Se eu tiver um terminal com um shell aberto, como posso escrever um script de shell (qualquer linguagem de script é ok comigo!) que enviará um pressionamento de tecla para qualquer um dos processos em execução?

Como exemplo, como eu poderia chamar uma função que envia Esc , : , wq , enter para o processo Vim, supondo que eu saiba seu PID?

Existe um executável que possa fornecer essa API? Alternativamente, eu poderia fazer isso com algo como o Tmux?

    
por themirror 08.12.2013 / 22:42

1 resposta

3

Se o processo vi estiver sendo executado em uma janela do tmux:

tmux send-keys -t "${window_name}:${pane_number}" Escape :wq Enter

Se você quiser matar um processo vi, envie um sinal HUP. Isso não salva o arquivo, mas deixa os dados de recuperação de arquivos, se não estiverem desabilitados na configuração do vim.

kill -HUP $pid
    
por 09.12.2013 / 00:37