我们有一个 unix 脚本,它使用 expect 实用程序进行交互式执行。当我们从 unix 服务器运行时,这个脚本运行良好。
如果我们从 Jenkins 运行这个脚本,它是行不通的。
下面是脚本
var="xxxxx"
expect -c "
spawn sudo cp /abcd/sjws/config/obj.conf /abcd/sjws/config/obj.conf_jenkins
expect {
"Password:" { send $var\r;interact }
}
exit
"
下面是我们从 jenkins 运行时的输出
spawn sudo cp /abcd/sjws/config/obj.conf /abcd/sjws/config/obj.conf_jenkins
Password:
Password:
Build step 'Execute shell' marked build as failure
Finished: FAILURE
最佳答案
由于 Jenkins 不从实际终端运行它,interact
不起作用,因为那里实际上不可能有任何用户交互。
您可以将 interact
替换为
expect eof
wait
关于linux - 从 Jenkins 执行时,期望实用程序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16914342/