在Jenkins Shell脚本中设置新的环境变量

在Jenkins Shell脚本中设置新的环境变量,shell,jenkins,Shell,Jenkins,我尝试了很多方法在jenkins中存储一个值。但我无法在Jenkins的Shell脚本中为变量赋值 首先,我设置了一个名为branch的环境变量,其值为*/release/hotfix 所以我试着用这个词,像这样保存在新的变量中 VALUE=$($branch | sed -e 's/\*\/.*\///g') 我做了这么多实验来保存价值。这行不通 在我的研究中,我找到了一种给变量赋值的方法,但是插件()可能不安全 为什么我不能将值保存到Jenkins shell中的变量?我该怎么做?我找到

我尝试了很多方法在jenkins中存储一个值。但我无法在Jenkins的Shell脚本中为变量赋值

首先,我设置了一个名为branch的环境变量,其值为*/release/hotfix

所以我试着用这个词,像这样保存在新的变量中

VALUE=$($branch | sed -e 's/\*\/.*\///g') 
我做了这么多实验来保存价值。这行不通

在我的研究中,我找到了一种给变量赋值的方法,但是插件()可能不安全


为什么我不能将值保存到Jenkins shell中的变量?我该怎么做?

我找到了解决这个问题的方法

首先,我使用touch命令创建一个文件

touch enviroments.cfg
然后在保存到该文件时将值保存到变量中

echo "export VALUE=$(echo $branch | sed -e 's/\*\/.*\///g')" >> enviroments.cfg
为了再次访问保存的变量,我重新打开了该文件,并获得如下值

. './enviroments.cfg' (you can not use **source** command to read, use **dot**(.) instead of **source** command)

echo $VALUE

您可以在任何地方读取这样的值。

根据我的观察,在Jenkins中运行多个shell命令时,每一行都在不同的shell上执行。所以,如果你想存储某个变量的值并使用它们,那么你就必须用同样的单行命令来运行它们(丑陋的方式)。这就是为什么我无法访问变量内部的值@瓦伊巴夫贾因
VALUE=$($branch | sed -e 's/\*\/.*\///g')