Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

1. Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

diego silva lemelle
lemelle

(usa Slackware)

Enviado em 30/10/2013 - 11:50h

eu fiz um programa bobo que pergunta meu nome e minha idade, então tenho 2 scanfs, mas queria montar um scrippt shell que responda isso para mim, dando meu nome e minha idade. essa questão é para usar em outro programa em que eu tenho que digitar repetidamente as mesma resposta.

Alguém tem uma dica?


  


2. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

Estefanio Brunhara
stefaniobrunhara

(usa CentOS)

Enviado em 30/10/2013 - 12:01h

Todo script, le paramentros, da seguinte forma

script.sh paramentro1 paramentro2 etc...





vim teste.sh

#!/bash

echo "seu nome é: $1"

:x
chmod +x teste.sh

./teste.sh estefanio







3. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

Bruna Pierri
brunarega

(usa Slackware)

Enviado em 30/10/2013 - 13:31h

Tais descrevendo o expect. Da uma lida sobre ele.




4. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

diego silva lemelle
lemelle

(usa Slackware)

Enviado em 30/10/2013 - 14:25h

então eu fiz esse programinha

#include <stdio.h>

int main(void){


char nome;
int idade;

printf("Qual seu nome?\n");
scanf("%s",&nome);
printf("E sua idade?");
scanf("%d", &idade);

return 0;


}

quando eu rodo o script seguinte


#!/bin/bash

$1=Diego

$2=29

./testar $1 $2


ele dá erro, desculpe se meu erro for bobo estou aprendendo ainda, e só aqui apareceu gente para ajudar.


5. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

6. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

diego silva lemelle
lemelle

(usa Slackware)

Enviado em 30/10/2013 - 22:46h

olha bruna, vc entendeu bem meu problema, vou fazer uns teste, e creio que vc solucionou o problema.

Brigadão





7. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 30/10/2013 - 23:05h


eu faria assim:

echo "paulo 27" | teste.c


8. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

diego silva lemelle
lemelle

(usa Slackware)

Enviado em 04/11/2013 - 23:19h

oi bruna eu quero usar uma função desse site da nasa, e automatizar esse passo a passo
http://fermi.gsfc.nasa.gov/ssc/data/analysis/scitools/gbm_grb_analysis.html

para iniciar a funçã-programa da nasa = gtbin

eu pus

spawn gtbin

em seguida varios send com as coisas que quero digitar automaticamente.

o que aconteceu foi que ao rodar o expect-script ele escreveu "spawn gtbin" e não deu nenhuma mensagem de erro. e não gerou o arquivo que teria, caso eu digitasse manualmente.






9. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

Bruna Pierri
brunarega

(usa Slackware)

Enviado em 05/11/2013 - 08:36h

O expect serve apenas para responder a perguntas pré definidas, como num acesso ssh que vc já sabe que ele solicitará a senha ai vc usa o expect para não ter que ficar digitando ela, como mostra no material que te passei.


10. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

diego silva lemelle
lemelle

(usa Slackware)

Enviado em 05/11/2013 - 22:47h

é mas no material, e outros sites o comando inicial é um spawn ou para acesar um ftp ou ssh... no meu caso eu tenho que digitar gtbin antes de programar as respostas


11. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

diego silva lemelle
lemelle

(usa Slackware)

Enviado em 06/11/2013 - 00:05h

eu ainda não peguei a manha. e agora apareceu um sinal +> do nada

tentei fuçar a expect antes de faze o script olha que deu

eu escrevi o texto que aparece logo depois de iniciar a gtbin e pus no comando expect (acho que é assim que usa ele)

ae apareceu na linha de baixo um +>

bash-4.2# expect
expect1.1> spawn gtbin
spawn gtbin
4393
expect1.2> expect "This is gtbin version ScienceTools-v9r31p1-fssc-20130410
Type of output file (CCUBE|CMAP|LC|PHA1|PHA2|HEALPIX) [PHA2]"
+> send "LC"
+>
+> LC
+> This is gtbin version ScienceTools-v9r31p1-fssc-20130410
Type of output file (CCUBE|CMAP|LC|PHA1|PHA2|HEALPIX) [PHA2]+>
+> This is gtbin version ScienceTools-v9r31p1-fssc-20130410
Type of output file (CCUBE|CMAP|LC|PHA1|PHA2|HEALPIX) [PHA2]
+>



12. Re: Como escrever um script que dê entradas para um outro programa rodando? [RESOLVIDO]

diego silva lemelle
lemelle

(usa Slackware)

Enviado em 06/11/2013 - 00:29h

oi bruna consegui fazer rodar meu script expect

faltou o detalhe do significado de % para abreviar aquilo que vem escrito no prompt, antes de digitar algo


o problema é que o script demora muito para digitar por mim... um tal set serviria para incurtar o tempo de resposta?

lemelle escreveu:

eu fiz um programa bobo que pergunta meu nome e minha idade, então tenho 2 scanfs, mas queria montar um scrippt shell que responda isso para mim, dando meu nome e minha idade. essa questão é para usar em outro programa em que eu tenho que digitar repetidamente as mesma resposta.

Alguém tem uma dica?