使用TCL/expect脚本在固定时间间隔后中断循环

使用TCL/expect脚本在固定时间间隔后中断循环,tcl,expect,Tcl,Expect,我正在编写expect脚本(TCL),并希望在以下两种情况中的任何一种情况下中断循环: 1) 期望后-重新匹配 2) 固定时间间隔后 第一个条件起作用,但第二个条件不起作用。有什么建议吗 foreach line $commandarray { send -- $line sleep 1 send "\r" while (1) { expect -re $currentprompt break after 2000 { break } send "\x20"

我正在编写expect脚本(TCL),并希望在以下两种情况中的任何一种情况下中断循环: 1) 期望后-重新匹配 2) 固定时间间隔后 第一个条件起作用,但第二个条件不起作用。有什么建议吗

foreach line $commandarray {

send -- $line

sleep 1

send "\r"

while (1) {

  expect -re $currentprompt break

  after 2000 { break }     

send "\x20"

      }

 }

我不能使用超时,因为这是一个进程。我从主脚本调用这个过程,在那里(主脚本)我编写了超时处理程序。为什么您认为一个过程不允许超时?发生的是:我在foreach循环内的第二行提供了“设置超时20”。当超时发生时,它由写在主脚本上的超时处理程序处理,外部foreach也会中断,因此我的目标没有实现。