我有一个期望脚本来检查登录状态,如果显示database
脚本的控制台将发送用户名(无密码)并等待180秒以准备系统。
系统就绪后,将检查控制台是否显示"poplar login",
,如果是,它将中断并发送"root@poplar"
消息。如果没有,则期望会超时并返回到success
我的脚本
"poplar login"
以某种方式总是无法按预期读取超时,并且日志类似于Follow
set timeout 2
expect {
"poplar login" {
send "root\r";
sleep 180; send "\r" ;
send "\r" ;
exp_continue
}
"root@poplar"
timeout { send "\r" ; exp_continue }
}
send_user "login success!\n"
请协助,谢谢
答案 0 :(得分:1)
更改
"root@poplar"
timeout { send "\r" ; exp_continue }
到
"root@poplar" {}
timeout { send "\r" ; exp_continue }
否则将被处理为
"root@poplar" timeout
{ send "\r" ; exp_continue }
这就是为什么您看到调试消息的原因
" send "\r" ; exp_continue "? no
因为部分{ send "\r" ; exp_continue }
被当作模式来处理。