【问题标题】:Expect: Can I set a permanent pattern - action pair for multiple expect command期望:我可以设置一个永久模式 - 多个期望命令的操作对
【发布时间】:2015-03-30 23:23:34
【问题描述】:

我使用可以通过串行调试端口访问的嵌入式系统进行调试。我想使用它的 cli 接口,可以通过期望在调试控制台中使用telnet localhost 访问(甚至在系统完全启动之前)。问题是,cli 界面会在 Connection closed by foreign host. 接近启动时随机将我踢出去(无法在系统中更改此行为)。

这是背景,我的问题是,是否有任何方法或技巧可以让我为所有期望命令(在某些特定范围内)永久设置模式-动作对?我想设置这样的东西:

expect "Connection closed by foreign host." { error "cli closed" }

并在我所有处理 cli 内容的 tcl proc 中的所有期望命令中使用它,然后我会在主程序中使用 catch 调用我的 proc,并且可以处理断开连接。如果我不能永久设置这个模式-动作对,我必须将它包含在我所有的 expect 命令中,这将非常乏味(或者使用某种状态而不是多个期望命令,这将更加乏味..)

也欢迎任何其他解决此问题的想法!

【问题讨论】:

    标签: tcl expect


    【解决方案1】:

    有一个expect_before 命令:expect_before 中定义的模式和动作被“导入”到每个子任务expect 命令中。所以,你想要:

    expect_before "Connection closed by foreign host." { error "cli closed" }
    

    【讨论】:

    • 谢谢!正是我需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多