0

以下 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

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

解决方案

通过在交互之前发送适当的退出命令来解决,因此没有什么可交互的。

#!/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

不过,这似乎有点粗略,因为如果服务器没有响应,它仍然会挂起。

4

0 回答 0