Lançar e passar comandos em script para um script Terminal

1

Eu tenho a.command, um script que aguarda a entrada do usuário (como digitar algo e, em seguida, bater o retorno) Loops para sempre-ish. Por exemplo, ele informa ao usuário se a entrada é um ano bissexto ou se é um servidor de minecraft. Eu entendo como o usuário assim:

open a.command

Tentando escrever um script que funcionará periodicamente como um usuário digitando entradas para esse script.

Não estou tendo sorte com algo assim:

i=5;
while [ $i -gt 0 ]; do
  i=$(( $i - 1 )); sleep 10; # do this once every 10 seconds for i times
  {{send text to the script a.command in the newly opened window}}
done & open a.command > a.out; 

Não tem que sair para a.out, eu estava apenas salvando os resultados para esse arquivo.

    
por Seattleda 23.02.2014 / 23:20

1 resposta

0

Em vez de fazer a comunicação entre processos dentro do loop while, simplesmente imprima para o padrão e canalize todo o loop em a.command.

Assim, seu script seria parecido com isto:

i=5;
while [ $i -gt 0 ]; do
  i=$(( $i - 1 )); sleep 10; # do this once every 10 seconds for i times
  echo "Jan 1, 1970" # just echo or print your input here
done | a.command > a.out;

Observe o uso do caractere | em vez do & na última linha.

    
por 23.02.2014 / 23:41