Instalando noip via sh script

3

Eu tenho este script:

cd /usr/local/src/
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/
make install <<END_SCRIPT
Username
password
30
N
END_SCRIPT

De acordo com o este guia , ele deve instale o Noip DUC (estou usando o Ubuntu 14.04, vá para a seção do Ubuntu 12.04 LTS). Quando ele faz parte da instalação, eu tentei configurá-lo para que ele insira automaticamente todas as informações necessárias ("nome de usuário", "senha", "intervalo de atualização" e "você deseja executar algo após a instalação (S / N) ? ").

A instalação vai bem até eu chegar à parte de configuração. Esta é a última linha da saída:

Enter-username Enter-password-for-Username _

(sublinhado é o cursor)

O programa simplesmente fica pendurado e não aceita entrada.

Assim é quando você faz manualmente (mais ou menos, eu não copiei as sequências impressas predefinidas ao pé da letra):

Enter-username Username
Enter-password-for-Username password
Enter-interval 30
Question(Y/N)? N

Install done

Agora, sei que o nome de usuário foi digitado corretamente porque é impresso ao solicitar senha. No entanto, quando se trata da parte da senha, ela simplesmente fica pendurada. Alguma idéia?

    
por Karlovsky120 08.09.2014 / 19:40

1 resposta

2

O programa expect foi projetado exatamente para essa situação. Para usá-lo com o cliente noip, ajuste seu script como:

#!/usr/bin/bash

cd /usr/local/src
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/

/usr/bin/expect <<END_SCRIPT
spawn make install
expect "Please enter the login/email*" { send "Username\r" }
expect "Please enter the password for user*" { send "password\r" }
expect "Please enter an update interval*" { send "30\r" }
expect "Do you wish to run something at successful update*" {send "N\r" }
END_SCRIPT
    
por 08.09.2014 / 22:43