在最前面一行设置超时时间 set timeout -1
由于timeout默认为10s,10s后会匹配打印台输出内容,若无匹配的内容则自动输出匹配的内容。
#!/usr/bin/expect
spawn ./install.sh
set timeout -1
expect "password:"
send "123\r"
其中 install.sh为目标脚本,若不设置timeout 为-1则在等待password这个关键字的时候,超过了10秒,于是我们的脚本就提前把password送入输入流了,结果导致expect脚本执行失败。
需要注意的是spawn后 send 最后都追加一个回车符\r。因为这是程序之间的交互,用的是回车。但是没有spawn的情况下,send后面追加的是\n。这是方便输出到终端的操作。