我有一个Jenkins任务,会在远程服务器上执行一个shell脚本。现在我想要在这个shell脚本中传递一些参数。下面的例子可以给你更多的思路。
variable1={git-URL}
variable2={branch}
我希望这些参数能够传递到远程机器上的shell脚本中,并像下面这样执行。
#/usr/local/bin/check_out_code.sh <git-url> <branch>
希望有人能够为我指出一些解决此问题的方法。
谢谢。
我有一个Jenkins任务,会在远程服务器上执行一个shell脚本。现在我想要在这个shell脚本中传递一些参数。下面的例子可以给你更多的思路。
variable1={git-URL}
variable2={branch}
#/usr/local/bin/check_out_code.sh <git-url> <branch>
希望有人能够为我指出一些解决此问题的方法。
谢谢。
您可以像使用 Linux 中的任何其他变量一样,引用任何环境变量,包括 Jenkins 参数:${VARNAME}
我也遇到了同样的问题。
/${xx}/$xxx
参数在远程机器上未定义,因此当你的shell脚本在远程机器上执行时无法获得正确的值。
以下方法可以解决这个问题:
ssh -t server.example.com 'export MYVAR='"'$LOCALVAR'"'; mycommand'
ssh 'export MYVAR="'$localvar1"_"$localvar2'";
- Sonata正如@Slav所提到的,您可以像在Jenkins中使用其他环境变量一样使用环境/构建参数。需要记住的一件事是它们在脚本执行之前被扩展。如果您正在使用管道Groovy脚本,请确保使用双引号"
而不是单引号'
:
以下内容将无法工作:
sh '/usr/local/bin/check_out_code.sh ${giturl} ${branch}'
以下代码可正常工作:
sh "/usr/local/bin/check_out_code.sh ${giturl} ${branch}"