期望在telnet之后失去连接,并且不发送任何后续的“expect send”命令

时间:2012-08-27 19:26:35

标签: session tcl telnet expect

我有一个自动化的telnet会话..我的问题有点令人困惑,但我试着用例子来解释....

example1:

spawn telnet 172.23.144.180 2068
after 2000
send "\r"

expect "loader>"
send "boot n7000-s2-kickstart.6.1.1.66.gbin n7000-s2-dk9.6.1.1.66.gbin\r"
### HERE I NEED TO WAIT FOR 3 MINUTES FOR MY EXPECT STRING ####
### SO IM SETTING TIME OUT ###
set timeout 180

### AFTER 3 MIN ### 
expect "Feature poap enabled/disabled"
send "yes\r"

expect "Do you want to enforce secure password standard (yes/no)"
send "yes\r"

发生了什么,方案1:它永远等待不向控制台发送任何内容(我在控制台上看到“Feature poap enabled/disabled”日志。)

发生了什么,情景2:如果我给“after 180000”,即睡3分钟;代替 “set timeout 180”:无论如何,脚本都会发送“yes”,即第一个“expect send”..

我希望我的脚本只在我看到“Feature poap enabled/disabled”时发送“是”...有人可以帮我这样做吗?

我研究了更多,发现只有telnet进程才会发生这种情况。不是常规进程(即不是telnet)

package require Expect
set timeout 180
expect "Feature poap enabled/disabled"
send "Yes\r"

工作正常; 180000之后也能正常工作......

帮助表示赞赏..

1 个答案:

答案 0 :(得分:0)

使用exp_internal 1并发现无论期望的字符串是什么...它搜索给定的字符串几秒钟...然后打印“expect:timed out”并发送.ie“yes”在我的情况下......所以我使用设置超时-1它工作正常......它会永远等待字符串....这有点重我需要..谢谢你们投球... -