Faça o programa primeiro ler do pipe, depois do teclado

17

Considere o programa interativo interactive. Eu tenho que executar este programa com bastante frequência e cada vez que o executo, os primeiros comandos são os mesmos. Obviamente, ter que digitar esses comandos repetidamente é uma dor. Eu coletei esses comandos (separados por novas linhas) no arquivo cmd. Agora eu posso fazer cat cmd | interactivepara executar os comandos. O problema é que, uma vez cmdtotalmente lido, interactiverecebe o EOF e sai.

O que eu desejo fazer é primeiro interactiveler o pipe (obviamente interactive < cmdtambém é aceitável) e, quando o EOF for recebido, comece a ler pelo teclado.

Viktor Dahl
fonte

Respostas:

21

Basta pedir catpara concatenar esse arquivo com o stdin:

cat cmd - | interactive
homem a trabalhar
fonte
1
A solução acima é provavelmente ideal. Se você estiver usando uma área de trabalho da GUI, também dê uma olhada no AutoKey. Isso permitirá que você crie macros que podem fazer quase tudo o que você pode fazer a partir de um teclado. Fica um pouco complicado se você precisar esperar que as coisas aconteçam ou precisar obter dados da tela, mas se você conhece python (o idioma em que suas macros estão codificadas), o céu é o limite.
31512 Joe