expect-自动交互脚本安装配置

故事的开始当然是具体需求了,为了省点流量,平时上网都用openvpn,所以每次连接都要输帐号密码,感觉太麻烦了,如果能写个脚本模拟键盘输入,那岂不是爽歪歪了,基于这个想法我就去网上找了找方法,果不其然,Google还是挺给力的,让我找到了expect这个玩意,废话不多说,进入正题。

expect是基于Tcl的,至于Tcl是什么,自己去网上搜搜吧,这里先给个页面很好看的expect教程,原理和语法可以参考这上面。

下面讲安装过程了。

1. Tcl安装

刚刚说过expect是基于Tcl的,So,我们得先装Tcl ->源码包,解压,安装配置参考下面

1
2
3
4
cd tcl8.6.7/unix
./configure --prefix=/usr/tcl --enable-shared
make
make install

安装完毕以后,进入tcl源代码的根目录,把子目录unix下面的tclUnixPort.h copy到子目录generic中。

注意先别删除tcl源码,一会expect的安装过程还需要用。

2. expect安装

下载源码包

解压

安装配置参考下面

1
2
3
4
5
6
cd expect5.45.3
./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=你的Tcl安装目录/generic
## 注意务必写正确Tcl的正确路径
make
make install
ln -s /usr/tcl/bin/expect /bin/expect

3. 这里给个例子

1
2
3
4
5
#!/bin/expect
spawn sudo vi /etc/passwd
expect "*for username:*" #改成你自己的用户
send "psd\r" #改成你自己的密码
interact

具体使用方法参考上文给出的教程,Bye