我有一个预期脚本,看起来有点像这样:
set timeout 15
spawn someprocess
expect "a line"
expect "another line"
expect "some other line"
Run Code Online (Sandbox Code Playgroud)
本质上,它会等待这些行出现。无需采取任何行动。
我不想为我正在寻找的每一行编写以下内容:
expect {
"a line" {}
timeout { exit 1 }
}
Run Code Online (Sandbox Code Playgroud)
如果在任何时候超时,我想expect返回一个非零状态代码(即 in )。$?我该怎么做呢?
您可以设置一条expect_before与任何后续的期望命令“并行”运行的线路来测试超时。spawn只需在命令后添加即可
expect_before timeout { exit 1 }
Run Code Online (Sandbox Code Playgroud)
如果您想在生成的进程退出时出错,可以按如下方式组合它们:
expect_before {
timeout { exit 1 }
eof { exit 1 }
}
Run Code Online (Sandbox Code Playgroud)