Bash 如何在Jenkins中获取环境变量的值

Bash 如何在Jenkins中获取环境变量的值,bash,shell,maven,jenkins,environment-variables,Bash,Shell,Maven,Jenkins,Environment Variables,我试图在构建步骤Invoke Maven中注入一个环境变量,其值是在预构建步骤到Execute Shell中设置的 #!/bin/bash ipAddressHub=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-hub) echo $ipAddressHub echo 'ipAddress=$ipAddressHub' > ipAd

我试图在构建步骤
Invoke Maven
中注入一个环境变量,其值是在预构建步骤到
Execute Shell中设置的

    #!/bin/bash
    ipAddressHub=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' selenium-hub)
    echo $ipAddressHub
    echo 'ipAddress=$ipAddressHub' > ipAddress.properties
现在我想获取存储在
ipAddress.properties
中的
ipAddress
的值。我在
执行Shell之后使用
注入环境变量
,并在
属性文件路径
字段中提供
ipAddress.properties
(不确定这是否正确),然后使用构建步骤
调用Maven Artifactory
并提供下面的命令

   clean install -DipAddress=${ipAddressHub} -Denv=${env} -Durl=${appURL} -DserverIP=${ipAddress}

但我没有在serverIP中获取值,而是在console中获取
${ipAddressHub}
。我知道我犯了一些错误,有人能指出正确的方法吗?

浏览了一下,找到了答案

只能在双引号字符串中嵌入变量。所以问题是

echo 'ipAddress=$ipAddressHub' > ipAddress.properties
改成

echo 'ipAddress='"$ipAddressHub"' > ipAddress.properties

它像一个魔咒一样工作

浏览了一下,找到了答案

只能在双引号字符串中嵌入变量。所以问题是

echo 'ipAddress=$ipAddressHub' > ipAddress.properties
改成

echo 'ipAddress='"$ipAddressHub"' > ipAddress.properties
它就像一个符咒一样工作

我没有使用这个插件(至少有一段时间没有),我想说你只是引用了它,不正确

我相信如果您将其添加为环境变量(您可以通过单击构建屏幕左侧的环境变量来检查它是否正在添加)

你应该可以像下面这样引用它

${env.ipAddressHub}

这是未经测试的。只是从内存开始。

我没有使用这个插件(至少有一段时间没有),我想建议您只是错误地引用了它

我相信如果您将其添加为环境变量(您可以通过单击构建屏幕左侧的环境变量来检查它是否正在添加)

你应该可以像下面这样引用它

${env.ipAddressHub}


这是未经测试的。只是从内存开始。

构建的控制台日志对注入步骤有何说明?您是否提供了正确的
属性文件路径
$WORKSPACE/ipAddress.Properties
,如的回答中所述?我也尝试了这一点,控制台说变量注入成功,但我似乎没有在mvn命令中获得分配给
serverIP
ipAddressHub
的值。它仍然在日志中打印相同的内容,即
${ipAddressHub}
,构建的控制台日志对注入步骤有何说明?您是否提供了正确的
属性文件路径
$WORKSPACE/ipAddress.Properties
,如的回答中所述?我也尝试了这一点,控制台说变量注入成功,但我似乎没有在mvn命令中获得分配给
serverIP
ipAddressHub
的值。它仍然在日志中打印相同的内容,即
${ipAddressHub}