Como usar o wget em um script Expect?

2

Primeiro baixei um arquivo para /root/TRY1/ :

#!/usr/bin/expect
cd /root/TRY1/
exec wget --http-user $user --http-password $password $url

Então eu quero extrair o arquivo:

cd /root/TRY1/
exec bash -c "tar -xzvf /root/TRY1/BigDataProtector*.tgz"

No entanto, isso apenas faz o download do arquivo nesse local e para depois dele. O arquivo não é extraído.

Mas quando eu comento a parte wget e executo o comando extract ele é extraído.

Como faço os dois comandos consecutivamente?

    
por user375501 13.09.2016 / 13:42

1 resposta

3

Use o comando nativo spawn do Expect:

#!/usr/bin/expect
cd /root/TRY1/
spawn wget --http-user $user --http-password $password $url
spawn bash -c "tar -xzvf /root/TRY1/BigDataProtector*.tgz"

Ou evite que wget grave no terminal com o argumento --quiet :

#!/usr/bin/expect
cd /root/TRY1/
exec wget --quiet --http-user $user --http-password $password $url
exec bash -c "tar -xzvf /root/TRY1/BigDataProtector*.tgz"
A barra de progresso de

wget faz com que Expect falhe quando é chamado com exec .

    
por 13.09.2016 / 14:55