首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过sh脚本安装noip

通过sh脚本安装noip
EN

Unix & Linux用户
提问于 2014-09-08 17:40:53
回答 1查看 1.6K关注 0票数 3

我有这样的剧本:

代码语言:javascript
复制
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 (我使用Ubuntu14.04,转到Ubuntu12.04LTS部分)。当它完成安装部分时,我尝试配置它,以便它能够自动输入所有需要的信息(“用户名”、“密码”、“更新间隔”,以及“安装后您想运行什么东西(Y/N)吗?”)。

在我到达配置部分之前,安装进行得很好。这是输出的最后一行:

Enter-username Enter-password-for-Username _

(下划线是光标)

然后程序挂起,不接受输入。

当您手动执行时(或多或少,我没有将预置打印的字符串复制到字母中),情况就是这样的:

代码语言:javascript
复制
Enter-username Username
Enter-password-for-Username password
Enter-interval 30
Question(Y/N)? N

Install done

现在,我知道用户名是正确输入的,因为它在请求密码时打印出来了。但是,当涉及密码部分时,它只是挂在那里。有什么想法吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2014-09-08 20:43:09

expect程序正是针对这种情况而设计的。若要与noip客户端一起使用它,请调整脚本如下:

代码语言:javascript
复制
#!/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
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/154428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档