如何在Expect脚本中返回生成的进程退出代码?
我使用Expect运行测试脚本。通过退出代码测试返回成功/失败。但期望返回等效的退出代码。如何使期望返回正确的退出状态?
我的测试是使用 psql (postgresql命令处理器)运行的sql脚本。由于psql不允许将数据库密码指定为命令行参数,因此需要 脚本来
执行。
因此,我的期望脚本如下所示:
spawn $SPAWN_CMDexpect {
-re "Enter password for new role:" {
send "$PWPROMPT\n"
exp_continue
} -re "Enter it again:" {
send "$PWPROMPT\n"
exp_continue
} -re "Password(.*)" {
send "$PASSWORD\n"
exp_continue
} -re "Password(.*):" {
send "$PASSWORD\n"
exp_continue
} eof
}
回答:
您已经eof
在循环结束时等待了,您只需要使用wait
和catch
结果即可:
spawn trueexpect eof
catch wait result
exit [lindex $result 3]
以0退出。
spawn falseexpect eof
catch wait result
exit [lindex $result 3]
以1.退出。
以上是 如何在Expect脚本中返回生成的进程退出代码? 的全部内容, 来源链接: utcz.com/qa/418350.html