7

インタラクティブな実行に期待ユーティリティを使用するUNIXスクリプトがあります。このスクリプトは、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
    "

以下は、ジェンキンスから実行したときの出力です

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
4

5 に答える 5

11

Jenkins は実際の端末から実行しないため、interact実際にはユーザーとのやり取りができないため、機能しません。

interactあなたはと置き換えることができます

expect eof
wait
于 2015-02-22T15:36:06.420 に答える
1

var="xxxxx" の代わりに var='xxxxx' を使用してください。この助けを願っています。

于 2014-12-30T06:36:11.820 に答える
0

Jenkins は対話型コマンド モデルをサポートしていないようです。

sshpassツールを使用して、非対話的な方法でパスワードを渡すようにしてください。

sshpass をインストールする

$ sshpass -p "password" {your command}
于 2014-12-11T07:59:21.123 に答える