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?









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts