expect是建立在tcl基础上的一个工具,它还提供了一些Tcl所没有的命令,它可以用来做一些linux下无法做到交互的一些命令操作,在远程管理方面发挥很大的作用。
因为expect是基于tcl的,所以需要你的系统中安装有tcl
如何检查?
[root@dev ~]# whereis tcl tcl: /usr/lib/tcl8.4 /usr/share/tcl8.4
如果看不到结果,请先安装tcl
> 安装tcl
下载tcl安装包,然后解压tcl安装包(centos系统下可以直接使用yum install tcl; ubuntu系统下可以直接使用apt-get install tcl命令来快速安装)
主页: http://www.tcl.tk
下载地址: http://www.tcl.tk/software/tcltk/downloadnow84.tml
1.下载源码包
[root@dev ~]# wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz
2.解压缩源码包
[root@dev ~]# tar xfvz tcl8.4.11-src.tar.gz
3.安装配置
[root@dev ~]# cd tcl8.4.11/unix [root@dev ~]# ./configure --prefix=/usr/tcl --enable-shared [root@dev ~]# make [root@dev ~]# make install
安装完毕以后,进入tcl源代码的根目录,把子目录unix下面的tclUnixPort.h copy到子目录generic中。
暂时不要删除tcl源代码,因为expect的安装过程还需要用。
> 安装expect
主页: http://expect.nist.gov/
1.下载源码包
[root@dev ~]# wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download
2.解压缩源码包
[root@dev ~]# tar xzvf expect5.45.tar.gz
3.安装配置
[root@dev ~]# cd expect5.45 [root@dev ~]# ./configure --prefix=/usr/expect --with-tcl=/usr/local/tcl/lib --with-tclinclude=/opt/tcl8.4.11/generic/ --enable-shared [root@dev ~]# make [root@dev ~]# make install
注意:指定的 /opt/tcl8.4.11/generic/ 为我们上面解压的tcl目录
> 创建连接符号
[root@dev ~]# ln -s /usr/local/expect/bin/expect /usr/bin/expect
> 查看连接符号
[root@dev ~]# ls -l /usr/bin/expect lrwxrwxrwx. 1 root root 28 9月 8 11:21 /usr/bin/expect -> /usr/local/expect/bin/expect
这个符号链接将在编写expect脚本文件时用到,例如在expect文件头部会指定用于执行该脚本的shell
#!/usr/bin/expect
> 测试
[root@dev ~]# expect expect1.1> exit [root@dev ~]#
这样就可以开始运行expect脚本了。