Jenkins在远程计算机上使用参数执行shell脚本

时间:2015-05-05 12:17:25

标签: linux git github jenkins ssh-agent

我有一个Jenkins作业,它在远程服务器上执行shell脚本。现在我想发送一些参数和shell脚本。下面的例子可能会让你有更多的想法。

variable1={git-URL}
variable2={branch}

我希望将这些参数传递给远程机器上的shell脚本,并且应该像下面那样执行

#/usr/local/bin/check_out_code.sh <git-url> <branch>

如果有人可以为我指出一些工作,那会很棒

感谢。

3 个答案:

答案 0 :(得分:3)

您可以将任何环境变量(包括Jenkins参数)引用为linux中的任何其他变量:${VARNAME}

答案 1 :(得分:1)

我遇到了同样的问题。

远程计算机中未定义参数/${xx}/$xxx。所以当你的shell脚本在远程机器上执行时无法获得正确的值。

这种方法可以解决问题:

ssh -t server.example.com 'export MYVAR='"'$LOCALVAR'"'; mycommand'

答案 2 :(得分:0)

正如@Slav所提到的,您可以像使用Jenkins中的任何其他环境变量一样使用环境/构建参数。要记住的一件事是它们在脚本执行之前得到扩展。如果您恰好使用管道groovy脚本,请确保使用双引号"而不是单'

以下不起作用:

sh '/usr/local/bin/check_out_code.sh ${giturl} ${branch}'

以下工作:

    sh "/usr/local/bin/check_out_code.sh ${giturl} ${branch}"