sh 스크립트를 통해 noip 설치

sh 스크립트를 통해 noip 설치

이 스크립트가 있습니다.

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

관련 정보