Bash 如何在Thoughtworks Go任务命令中解析环境变量
Thoughtworks Go提供了一组传递给每个任务的特定于作业的环境变量。 例如,我的作业输出的值与指定的值相同Bash 如何在Thoughtworks Go任务命令中解析环境变量,bash,thoughtworks-go,Bash,Thoughtworks Go,Thoughtworks Go提供了一组传递给每个任务的特定于作业的环境变量。 例如,我的作业输出的值与指定的值相同 [go] setting environment variable 'GO_ENVIRONMENT_NAME' to value 'rmp' [go] setting environment variable 'a' to value 'b' [go] setting environment variable 'GO_SERVER_URL' to value 'https://1
[go] setting environment variable 'GO_ENVIRONMENT_NAME' to value 'rmp'
[go] setting environment variable 'a' to value 'b'
[go] setting environment variable 'GO_SERVER_URL' to value 'https://10.8.249.57:8154/go/'
我无法在bash任务命令中解析vars
[go] Start to execute task: <exec command="echo" >
<arg>${GO_SERVER_URL}</arg>
我试过
${GO_SERVER_URL}
${env.GO_SERVER_URL}
${go.GO_SERVER_URL}
$[GO_SERVER_URL]
$GO_SERVER_URL
"${GO_SERVER_URL}"
什么都不管用…,声明:
请注意,这是一个普通的exec,而不是shell exec,因此[$FOO]不会产生预期的效果
最简单的解决方案:
command: /bin/bash
args:
-c
echo
$GO_SERVER_URL
另一种方法是简单地将脚本放入文件中
我为什么知道这个?因为我也遇到过它。对于一个具有多个选项的命令,Go相当挑剔。tedder42的答案对于简单的echo案例是正确的,但对于我使用多参数curl的实际问题,它并不适用于我。斯里尼瓦斯·乌帕迪亚帮了我的忙。我想在这里为其他人记录它,这样很容易找到。这看起来很明显,但小的偏差不起作用 按如下方式输入命令: XML应该如下所示:
<tasks>
<exec command="/bin/bash">
<arg>-c</arg>
<arg>curl -o test.file $GO_VAR</arg>
<runif status="passed" />
</exec>
....
</tasks>
-c
curl-o test.file$GO\u VAR
....
简单且无需动脑筋。我希望我能早点发现这个。谢谢你,伙计。
<tasks>
<exec command="/bin/bash">
<arg>-c</arg>
<arg>curl -o test.file $GO_VAR</arg>
<runif status="passed" />
</exec>
....
</tasks>