COMANDOS SHELL SCRIPT [RESOLVIDO]

1. COMANDOS SHELL SCRIPT [RESOLVIDO]

luis darci soares de medeiros
TuTuSkoito

(usa Linux Mint)

Enviado em 05/01/2017 - 09:16h

Bom dia...
Estou criando um script para automatizar a instalação de alguns programas.
Então alguns programas pedem para digitar algumas informações, tendo em vista que sempre sera as mesmas informações sempre, queria fazer isso via script, é possivel?


  


2. Re: COMANDOS SHELL SCRIPT [RESOLVIDO]

natha
ncampos

(usa Debian)

Enviado em 05/01/2017 - 11:57h

"alguns programas pedem para digitar algumas informações tendo em vista que sempre sera as mesmas informações sempre"

Exemplo:
apt-get install nmap -y

esse "-y" ira Aceitar as condições de instalações com base na instalação do nmap.
Ja oque seria DIGITAR algumas informações?



3. Re: COMANDOS SHELL SCRIPT [RESOLVIDO]

thinomar
thinomar

(usa Linux Mint)

Enviado em 05/01/2017 - 12:42h

Se a resposta for sempre a mesma, você pode usar o comando yes, que vai mandar uma string repetidamente até acabar a execução do outro comando/script. (man: https://linux.die.net/man/1/yes)
Exemplo, onde o apt-get irá pedir confirmação de instalação e você precisa entrar com um 'y':
yes | apt-get upgrade 

Exemplo onde a resposta tem de ser 'N':
yes 'N' | comando 

Se as respostas forem diferentes, você pode usar o expect, que, como diz na própria man, é uma ferramenta de "dialogo programado com programas interativos". Resumidamente, você irá dizer pra ele o que fazer de acordo com as saídas do seu script. Você pode ver mais dele aqui https://linux.die.net/man/1/expect e aqui http://www.admin-magazine.com/Articles/Automating-with-Expect-Scripts.
Exemplo:
teste.sh
#!/bin/bash
read -p "Teste 1: " a
read -p "Teste 2: " b
read -p "Teste 3: " c
echo "$a - $b - $c"

Processando o script com except:
expect -c '
spawn ./teste_except.sh
expect "Teste 1: "
send "1\n"
expect "Teste 2: "
send "2\n"
expect "Teste 3: "
send "3\n"
expect eof
'

Saída final:
spawn ./teste_except.sh
Teste 1: 1
Teste 2: 2
Teste 3: 3
1 - 2 - 3


Claro que o expect possui usos muito mais avançados que isso, mas dessa forma ele já deve suprir suas necessidades.



4. Re: COMANDOS SHELL SCRIPT [RESOLVIDO]

luis darci soares de medeiros
TuTuSkoito

(usa Linux Mint)

Enviado em 05/01/2017 - 17:22h

thinomar escreveu:

Se a resposta for sempre a mesma, você pode usar o comando yes, que vai mandar uma string repetidamente até acabar a execução do outro comando/script. (man: https://linux.die.net/man/1/yes)
Exemplo, onde o apt-get irá pedir confirmação de instalação e você precisa entrar com um 'y':
yes | apt-get upgrade 

Exemplo onde a resposta tem de ser 'N':
yes 'N' | comando 

Se as respostas forem diferentes, você pode usar o expect, que, como diz na própria man, é uma ferramenta de "dialogo programado com programas interativos". Resumidamente, você irá dizer pra ele o que fazer de acordo com as saídas do seu script. Você pode ver mais dele aqui https://linux.die.net/man/1/expect e aqui http://www.admin-magazine.com/Articles/Automating-with-Expect-Scripts.
Exemplo:
teste.sh
#!/bin/bash
read -p "Teste 1: " a
read -p "Teste 2: " b
read -p "Teste 3: " c
echo "$a - $b - $c"

Processando o script com except:
expect -c '
spawn ./teste_except.sh
expect "Teste 1: "
send "1\n"
expect "Teste 2: "
send "2\n"
expect "Teste 3: "
send "3\n"
expect eof
'

Saída final:
spawn ./teste_except.sh
Teste 1: 1
Teste 2: 2
Teste 3: 3
1 - 2 - 3


Claro que o expect possui usos muito mais avançados que isso, mas dessa forma ele já deve suprir suas necessidades.


Irei testar. obrigado



5. Re: COMANDOS SHELL SCRIPT [RESOLVIDO]

luis darci soares de medeiros
TuTuSkoito

(usa Linux Mint)

Enviado em 05/01/2017 - 17:24h

ncampos escreveu:

"alguns programas pedem para digitar algumas informações tendo em vista que sempre sera as mesmas informações sempre"

Exemplo:
apt-get install nmap -y

esse "-y" ira Aceitar as condições de instalações com base na instalação do nmap.
Ja oque seria DIGITAR algumas informações?


Obrigado pela dica, ajudou em uma parte do que eu precisava do script. Grato pela ajuda..






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts