当前位置: > shell编程 >

Expect的安装与应用

时间:2014-09-08 22:30来源:linux.it.net.cn 作者:it
Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。

认识Expect
Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。  
Expect是不断发展的,随着时间的流逝,其功能越来越强大,已经成为系统管理员的的一个强大助手。
Expect需要Tcl编程语言的支持,要在系统上运行Expect必须首先安装Tcl。

Expect工作原理
从最简单的层次来说,Expect的工作方式象一个通用化的Chat脚本工具。Chat脚本最早用于UUCP网络内,以用来实现计算机之间需要建立连接时进行特定的登录会话的自动化。

Chat脚本由一系列expect-send对组成:expect等待输出中输出特定的字符, 通常是一个提示符,然后发送特定的响应。例如下面的Chat脚本实现等待标准输出出现Login:字符串,然后发送somebody作为用户名;然后等待 Password:提示符,并发出响应sillyme。

进入 http://www.tcl.tk/software/tcltk/8.5.html
点击 Download Tcl/Tk 8.5.8 Source Releases,
选择下载 tcl8.4.19-src.tar.gz,和tk8.4.19-src.tar.gz;

1. 开始安装
a). 编译安装tcl8.4.19;
 

复制代码代码示例:
#tar zxvf tcl8.4.19-src.tar.gz
#cd tcl8.4.19
#cd unix
#configure
 

最后几句:
 

复制代码代码示例:
...
updating cache ./config.cache
creating ./config.status
creating Makefile
creating dltest/Makefile
creating tclConfig.sh
#make
#make install

b). 编译安装tk8.4.19;
同样的步骤,不再详述;

安装expect:
2. 解压;
 

复制代码代码示例:
#tar zxvf expect.tar.gz

3. 安装;
 

复制代码代码示例:

# ./configure
checking for sin... no
checking for Tcl private headers... checking for tclInt.h... no
configure: error: Can't find Tcl private headers

# find / -name "tclInt.h"
/home/expect/tcl8.4.19/generic/tclInt.h

#./configure --with-tclinclude=/home/expect/tcl8.4.19/generic/
... ...
checking for Tcl private headers... (cached) found in /home/guoq/osrc/tcl8.4.19/generic
updating cache .././config.cache
creating ./config.status
creating Makefile

看来ok了!
 

复制代码代码示例:
#make
#make install

4. 测试脚本

复制代码代码如下:

#!/usr/local/bin/expect -f

set ipaddress [lindex $argv 0]
set passwd [lindex $argv 1]
set timeout 30

spawn ssh root@$ipaddress
expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$passwd\r" }
}
expect "]*"
interact


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容