expect是一个用来实现自动交互功能的软件套件。使用它可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。expect需要Tcl编程语言的支持,要在系统上运行expect必须首先安装Tcl。
expect安装
sudo apt-get install expect
expect 示例:
expect 自动切换root脚本
#!/usr/bin/expect
set timeout 30
spawn su root
expect "password:"
send "123456\r"
interact
以上代码讲解:
[#!/usr/bin/expect]
告诉操作系统脚本中的代码用expect解析。
注意:必须在脚本的第一行
[set timeout 30]
设置超时时间,单位为秒;默认是10秒
[spawn su root]
spawn 是进入expect环境后才可以执行的expect内部命令。后面跟上要执行的shell命令
[expect "password:"]
expect 也是expect的一个内部命令。用来捕捉spawn的命令执行结果。
[send "123456\r"]
将expect脚本中需要的信息发送给spawn启动的那个进程。等同于手动他输入密码
[interact]
执行完成后保持交互状态,把控制权交给控制台。如果没有这句,那么执行完成之后会退出。
用Expect来做Linux程序测试:http://www.linuxdiyf.com/linux/7673.html
Linux下的expect的简单用法及举例:http://www.linuxdiyf.com/linux/2655.html
Linux下Expect命令应用:http://www.linuxdiyf.com/linux/1709.html