이 스크립트가 있습니다.
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
~에 따르면이 가이드Noip DUC를 설치해야 합니다(저는 Ubuntu 14.04를 사용하고 있습니다. Ubuntu 12.04 LTS 섹션으로 이동하세요). 설치 부분에 이르면 필요한 모든 정보("사용자 이름", "비밀번호", "업데이트 간격" 및 "설치 후 뭔가를 실행하시겠습니까(예/ 아니요) ?").
구성 부분에 도달할 때까지 설치는 순조롭게 진행되었습니다. 다음은 출력의 마지막 줄입니다.
Enter-username Enter-password-for-Username _
(밑줄은 커서입니다)
그러면 프로그램이 중단되고 어떤 입력도 허용되지 않습니다.
수동으로 수행했을 때의 모습은 다음과 같습니다(대부분 사전 설정된 인쇄 문자열을 문자에 복사하지 않았습니다).
Enter-username Username
Enter-password-for-Username password
Enter-interval 30
Question(Y/N)? N
Install done
이제 비밀번호를 물을 때 사용자 이름이 인쇄되므로 사용자 이름이 올바르게 입력되었음을 알 수 있습니다. 그러나 비밀번호 부분에 관해서는 거기에 달려 있습니다. 어떤 아이디어가 있나요?
답변1
이 expect
프로그램은 바로 이러한 상황을 위해 설계되었습니다. noip 클라이언트와 함께 사용하려면 다음과 같이 스크립트를 조정하십시오.
#!/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