期望telnet自动化失败而没有交互

时间:2013-06-28 15:50:16

标签: telnet expect

以下Expect脚本有效,但最后的interact会强制用户进入交互式会话。

#!/usr/bin/expect -f

set timeout 10
spawn telnet sometelnetserver.com 10000

foreach line [split [read [open somefile.txt r]] "\n"] {
    send "$line\n"
}

interact

但是,删除interact会阻止telnet连接。脚本输出

spawn telnet sometelnetserver.com 10000

并且遥控器永远不会连接。

解决方案

Hackily通过在交互之前发送适当的退出命令来解决,因此无需与之交互。

#!/usr/bin/expect -f

spawn -noecho telnet sometelnetserver 10000

foreach line [split [read [open somefile.txt r]] "\n"] {
    send -- "ed77e768-0a1f-4fda-98c0-c3e5af441f78 $line\r"
}

send \035
send quit\r
interact

这看起来有点粗略,因为如果服务器没有响应,它仍然会挂起。

0 个答案:

没有答案