将shell输出传递给Jenkins作业中的变量



我有一个Jenkins脚本管道作业。我想把docker inspect命令的输出传递给一个变量。然后,我想稍后在其他步骤中使用该变量。

以下是将显示Mac地址的命令。我希望这个命令的输出存储在一个变量中。

docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID

我试过这个,但对我不起作用。

output = sh(
returnStdout: true, 
script: 'docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID'
)

有人能告诉我这里面出了什么问题吗?或者建议我用其他方法将输出存储在变量中。

问题是,您在脚本中使用了单引号,并且还用单引号包装它,因此Jenkins运行的docker inspect --format=应该不会返回任何内容。尝试用双引号包装脚本

output = sh(
returnStdout: true, 
script: "docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID"
)

最新更新