我有一个期望脚本,看起来像这样:
set timeout 15
spawn someprocess
expect "a line"
expect "another line"
expect "some other line"
本质上,它在等待直到这些行出现。没有要采取的行动。
我不想为我要查找的每一行写以下内容:
expect {
"a line" {}
timeout { exit 1 }
}
我希望expect
返回非零状态代码(即$?
中的某个值),只要该代码在任何时候都超时。我该怎么做?
答案 0 :(得分:2)
您可以设置一个expect_before
行,该行与任何以后的期望命令“并行”运行以测试超时。只需在您的spawn
命令之后添加
expect_before timeout { exit 1 }
如果您希望在生成的进程退出时进行错误提示,则可以将它们组合如下:
expect_before {
timeout { exit 1 }
eof { exit 1 }
}