Como preencher um campo read de um programa por um shell script

1. Como preencher um campo read de um programa por um shell script

yuttttttt
yuttttttt

(usa Outra)

Enviado em 06/02/2017 - 02:25h

Boa noite, estou aprendendo shell script e tive umas dúvidas que não consegui encontrar a resposta pela internet ou em minha cabeça, são 3:

1- Como preencher um campo read de um programa por um shell script; tenho um shell script teste.sh e nele abro um programa no próprio terminal que é executado o teste.sh e nesse programa é pedido que coloque seila seu nome para continuar, queria saber como fazer no teste.sh para ele preencher automaticamente esse campo read do programa e continuar a rodar o programa, se tiver como(pois não tenho certeza, mas penso que quando é aberto um novo programa o shell script é fechado).

2-Como pego o nome dos arquivos em um diretório e coloco num array? ou então cada nome em uma variável, não sei, precisava do nome deles dentro de uma variável.

3-Como abro um novo terminal e executo comandos nele ao executar um código dentro do teste.sh, já tente "gnome-terminal" de todas as sintaxes possíveis e sempre recebo o erro dizendo "Falhou ao executar processo filho...diretório não encontrado...".



  


2. Re: Como preencher um campo read de um programa por um shell script

Rafael da cruz
toskoon

(usa CentOS)

Enviado em 06/02/2017 - 16:45h

1- Como preencher um campo read de um programa por um shell script; tenho um shell script teste.sh e nele abro um programa no próprio terminal que é executado o teste.sh e nesse programa é pedido que coloque seila seu nome para continuar, queria saber como fazer no teste.sh para ele preencher automaticamente esse campo read do programa e continuar a rodar o programa, se tiver como(pois não tenho certeza, mas penso que quando é aberto um novo programa o shell script é fechado). [/quote]

yuttttttt, esta opção read é justamente para que você possa interagir com o script passando um valor qualquer que vai ser mapeado dentro de uma variável. pelo que entendi você não quer travar o script tendo que digitar o nome, neste caso você pode fazer o seguinte:
Usar dentro do seu script no lugar do read usar $1(vai mapear a string que você vai passar junto com a execução do script). neste caso na hora de executar você vai fazer o seguinte
./teste.sh NOME  

Ou se você não que passar valor nenhum e quer deixar um valor fixo só você colocar lá a
 variavel=valorfixo  


2-Como pego o nome dos arquivos em um diretório e coloco num array? ou então cada nome em uma variável, não sei, precisava do nome deles dentro de uma variável.

Neste caso você vai executar alguma ação com os arquivos? você pode fazer um laço for simples para isso.
 for i in `ls *`;do echo $i;done  

no caso "i" é uma variavel que vai receber os nomes dos arquivos atráves do comando ls. e no dopois do "do" você irá executar oque quiser nos arquivos passando eles como parametro $i. neste exemplo eu mandei apenas exibir(echo) o nome dos arquivos.

3-Como abro um novo terminal e executo comandos nele ao executar um código dentro do teste.sh, já tente "gnome-terminal" de todas as sintaxes possíveis e sempre recebo o erro dizendo "Falhou ao executar processo filho...diretório não encontrado...".


aqui não entendi sua real necessidade, ŝeria no caso deixar um comando rodando em segundo plano? se for você pode usar &.
exemplo.

 comando &  


aqui o comando será executado em segundo plano e o terminal será liberado para continuar a execução do script.


Se poder mostra oque você já fez que ajuda a entender melhor sua necessidade nas 3 questões.
abs.



3. Re: Como preencher um campo read de um programa por um shell script

yuttttttt
yuttttttt

(usa Outra)

Enviado em 06/02/2017 - 18:33h

Na questão 1 acho que expliquei mal, tipo assim, tenho um aquivo teste.sh:

#!/bin/bash

executar programa


nesse programa executado que está o read, não no teste.sh, queria preencher esse campo com o script teste.sh


Na 2, funcionou, então esse $i seria um array? como faria para para pegar tipo o elemento 1 do array, o 2, 3?

E na 3, quero tipo abrir um terminal novo, tipo um popup já executando algum codigo, não no mesmo terminal. Mas já consegui assim:

gnome-terminal --execute bash -c 'meucodigo; bash' 







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts