2

描述 Expect 的页面中,它是这样写的:

例如,下面的示例等待来自当前进程的“connected”,或者来自 $proc2 命名的 spawn_id 的“busy”、“failed”或“invalid password”。

expect {
    -i $proc2 busy {puts busy\n ; exp_continue}
    -re "failed|invalid password" abort
    timeout abort
    connected
}

据我了解,该期望中的所有内容仅与命名的spawn_id$proc2相关,而当前spawn_id不相关。
那是因为-i标志(如第一次引用之前所写):

...声明命名 spawn_id 列表的输出与任何以下模式匹配(直到下一个 -i)。

也许代码没有按预期编写?

4

1 回答 1

0

Dor,我查看了 Expect 书(Don Libes 的“Exploring Expect”),您是正确的。

如果在期望块中使用 -i 标志,则该块中的所有内容都将尝试将生成的进程的输出与 -i 后指示的 id 匹配。

因此,根据 Don Libes 的说法,该页面上的内容是错误的。我会和Don Libes一起去这个。:-)

也许您可以向他们报告,以便他们修复?

于 2013-11-15T16:32:35.473 回答