尝试在HUDSON中执行SSH命令时如何传递参数

时间:2011-04-14 21:44:17

标签: continuous-integration hudson

我希望我的工作能够在其他服务器上执行某些命令。我创建了一个新的(参数化的)作业,只执行shell命令。

我无法弄清楚如何让我的构建参数传递到遥控器的命令行。

ssh myservername 'echo ${MY_PARAMETER}'

查看我的控制台输出,我看到:

+ ssh myservername echo ${MY_PARAMETER}

我想看到的是:

+ ssh myservername echo MyValueFromTheBuild

必须有办法实现这一目标。

3 个答案:

答案 0 :(得分:4)

这是一个解决方案:

bash -c "ssh myservername 'echo ${MY_PARAMETER}'"

请注意,此处使用本地计算机上的变量值。它不会在远程主机上产生变量的值。从上下文来看,前者就像你想要的那样。

与以往一样,请注意不要评估您无法完全控制的输入。

答案 1 :(得分:2)

我在Jenkins服务器上使用它,对我来说效果很好。

ssh myservername "echo $PROJECTNAME"

答案 2 :(得分:0)

我的猜测将尝试以下语法形式之一:

ssh myservername 'echo $MY_PARAMETER'
ssh myservername 'echo ${ENV, var="MY_PARAMETER"}'