魏长东

weichangdong

expect的安装

spawn命令激活一个Unix程序来进行交互式的运行。 
send命令向进程发送字符串。
expect 命令等待进程的某些字符串。 
expect支持正规表达式并能同时等待多个字符串,并对每一个字符串执行不同的操作。

我接触的expect是用他做登陆。或者做ftp上传文件啥的,不用输入密码什么的。

下载源码包

wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz



解压缩源码包,安装配置

tar xfvz tcl8.4.11-src.tar.gz

cd tcl8.4.11/unix
./configure --prefix=/usr/tcl --enable-shared
make && make install



安装完毕以后,进入tcl源代码的根目录,把子目录unix下面的tclUnixPort.h copy到子目录generic中。
暂时不要删除tcl源代码,因为expect的安装过程还需要用。

cp  unix/tclUnixPort.h generic/

下载源码包,解压缩源码包,安装配置

wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download

tar xzvf expect5.45.tar.gz

cd expect5.45

ll ../tcl8.4.11/generic 看下目录是否在
./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/generic

make && make install
expect -v
expect version 5.45

一个测试例子:

#!/usr/tcl/bin/expect
puts "---1---"
    for {set i 0} {$i < 10} {incr i} {
        puts "I inside first loop: $i"
}

expect1.jpg