1.什么是expect语句
expect语句是自动应答命令用于交互式命令的自动执行 spawn是expect中的监控程序,其运行后会监控命令提出的交互问题 send发送问题答案给交互命令 exp_continue 表示当问题不存在时,继续回答下面的问题 expect eof表示问题回答完毕后退出expect环境 interact表示问题回答完毕后留在交互界面 set NAME [ lindex $argv n ] 定义在expect环境中的变量
例:
编写一个提出问题的脚本
执行脚本时,可以交互
再编辑一个回答问题的脚本,使当调用该脚本时,会自动通过重定向去对应答案
再次编辑提出问题的脚本,然后去掉中间的一个问题
再次调用回答问题的脚本时,会对应错乱,没有识别问题的有无
解决办法
可以编辑一个exp自动灵活回答问题的脚本
环境是#!/usr/bin/expect 在expect环境下定义变量的方式 [ lindex $argv 0 ]表示后跟的第一串字符,以此类推 spawn 监控问题 expect {}中的是发送的答案 expect eof 执行完后退出当前的expect环境 interact表示回答完问题停留在交互界面 还可以设定多久之后退出expect环境 set timeout 5则为5秒后退出
执行脚本.exp
发现,虽然之前将一行问题注释掉了,但是脚本自动跳过了那条问题,现在将那条问题恢复,然后再次执行,发现又对应上了。