如何发送命令(保持telnet会话活着),期望可以得到特定的文本?

时间:2013-03-08 18:25:42

标签: expect

我必须将来自1980电话系统(DMS100)的命令的输出保存在文件中。我有一个期望脚本来做这个,但我的问题如下:

  1. 此命令可输出长达10小时的信息。
  2. 在提交命令后出于某种原因,我的会话在10分钟后才会关闭。
  3. 我需要这样的事情:Send command while expect can get specific text

    但不同的是,我的期望可以在10-12小时后实现,而我的会议每10分钟到期。

    我想发送一个隐形字符,而我期待我的字符串,以保持我的会话活着。像这样:

    While expect "The End Of My Output"
    {
    send \007
    }
    

    我该怎么做?

    编辑:

    我的问题是我使用的telnet端口配置了10分钟超时。找到另一个没有超时的端口并且它正常工作。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情(未经测试):

# timeout after 5 minutes
set timeout 300

expect {
  "The End Of My Output" {
    # got all the output
  }
  timeout {
    send "\007"
    exp_continue
  }
}