我希望我的工作能够在其他服务器上执行某些命令。我创建了一个新的(参数化的)作业,只执行shell命令。
我无法弄清楚如何让我的构建参数传递到遥控器的命令行。
ssh myservername 'echo ${MY_PARAMETER}'
查看我的控制台输出,我看到:
+ ssh myservername echo ${MY_PARAMETER}
我想看到的是:
+ ssh myservername echo MyValueFromTheBuild
必须有办法实现这一目标。
答案 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"}'