22
我使用expect來運行測試腳本。 測試通過退出代碼返回成功/失敗。但期望返回等價退出代碼。 如何讓期望返回正確的退出狀態?如何在Expect腳本中返回產生的進程退出代碼?
我的測試是使用psql(postgresql命令處理器)運行的sql腳本。 因爲psql不允許指定數據庫密碼作爲命令行參數,所以期望腳本可以做到這一點。
所以,我希望腳本的樣子:
spawn $SPAWN_CMD
expect {
-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
}
嗯.. '[21:43:30]〜>期望<<<「產卵真實;期待eof;趕上等待結果;退出[lindex $ result 3]「; echo $?'輸出'3'對我來說 – 2014-11-17 19:48:33
@ sasha.sochka如果你輸入它就像$ result被shell解釋而不是期望的一樣,把輸入放在單引號或者escape $。 – 2014-11-18 13:14:52
哦,我的錯,明白了,謝謝 – 2014-11-18 13:15:44