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