期望:我可以为多个期望命令设置一个永久模式 - 动作对吗
Expect: Can I set a permanent pattern - action pair for multiple expect command
我使用的是嵌入式系统,我可以通过串行调试端口访问该系统进行调试。我想使用它的 cli 界面,可以通过 expect 在调试控制台中使用 telnet localhost
访问(甚至在系统完全启动之前)。问题是,cli 界面随机将我踢出 Connection closed by foreign host.
接近启动(此行为无法在系统中更改)。
这是背景,我的问题是expect中是否有任何方法或技巧可以为所有expect命令(在某些特定范围内)永久设置模式动作对?我想设置如下:
expect "Connection closed by foreign host." { error "cli closed" }
并在我所有处理 cli 内容的 tcl proc
中的所有 expect 命令中使用它,然后我会从主程序中用 catch
调用我的 proc
,并且可以处理断开连接。如果我不能永久设置这个模式动作对,我必须将它包含在我所有的 expect
命令中,这真的很乏味(或者使用某种状态而不是多个 expect 命令,这甚至是更乏味..)
也欢迎任何其他解决此问题的想法!
有一个 expect_before
命令:expect_before 中定义的模式和操作 "imported" 到每个子序列 expect
命令中。所以,你想要:
expect_before "Connection closed by foreign host." { error "cli closed" }
我使用的是嵌入式系统,我可以通过串行调试端口访问该系统进行调试。我想使用它的 cli 界面,可以通过 expect 在调试控制台中使用 telnet localhost
访问(甚至在系统完全启动之前)。问题是,cli 界面随机将我踢出 Connection closed by foreign host.
接近启动(此行为无法在系统中更改)。
这是背景,我的问题是expect中是否有任何方法或技巧可以为所有expect命令(在某些特定范围内)永久设置模式动作对?我想设置如下:
expect "Connection closed by foreign host." { error "cli closed" }
并在我所有处理 cli 内容的 tcl proc
中的所有 expect 命令中使用它,然后我会从主程序中用 catch
调用我的 proc
,并且可以处理断开连接。如果我不能永久设置这个模式动作对,我必须将它包含在我所有的 expect
命令中,这真的很乏味(或者使用某种状态而不是多个 expect 命令,这甚至是更乏味..)
也欢迎任何其他解决此问题的想法!
有一个 expect_before
命令:expect_before 中定义的模式和操作 "imported" 到每个子序列 expect
命令中。所以,你想要:
expect_before "Connection closed by foreign host." { error "cli closed" }