Bash script e stdin

1

Estou tendo um programa em C que requer leitura de stdin. Este é um dos requisitos e não pode mudar.

Eu escrevi um script bash simples que cria todos os diretórios que eu quero, lida com a saída etc. e também compila e executa o meu programa.

Quando executo meu programa, ele aguarda que o usuário forneça uma entrada do stdin:

Eu quero ser capaz de dar essa entrada do bash - então não deixe o usuário dar a entrada (há uma razão para isso). Então, idealmente, eu quero de alguma forma a entrada para ser visível para o usuário, mas dada a partir do script.

Se eu escrever algo assim:

./task2
cat <<< "my input here"

Ele executa a tarefa e o comando cat é executado quando a tarefa é concluída. Eu quero de alguma forma reforçar esse gato sempre que o programa requer entrada do usuário.

É possível?

    
por ghostrider 29.06.2014 / 15:15

1 resposta

1

Se eu entendi corretamente, você pode usar tee para essa finalidade. No script Bash, vamos supor que a seguinte linha execute seu programa C compilado:

./my_program

Substitua por:

printf "%s\n" "my input here" | tee /dev/tty | ./my_program

Isto irá imprimir my input here no seu dispositivo de terminal e para ./my_program no seu stdin para que possa lê-lo.

    
por 29.06.2014 / 15:25

Tags