Jenkins 无法识别使用 set -a 设置环境变量

Jenkins does not recognize setting env variables using set -a

我有一个 bash 文件用来设置环境变量。它被称为 setter.sh 并且包含类似这样的东西

set -x
var1="something"

在我的 jenkinsfile 中我这样做

sh ". setter.sh"
sh "echo $var1"

然而$var1无法识别。这可能是什么原因?

您的问题不是空格,而是步骤语法。您在两个单独的 shell 中有两个单独的步骤(命令)。 sh ". setter.sh" 在一个 shell 中运行并退出。第二个命令 sh "echo $var1" 在一个单独的 shell 中运行,它不知道第一个命令的环境。

要么使用 multi-line shell command or Environment Injector plugin or some other means. (warning).

此外,set -x与问题无关,但主题中的set optionset -a (导出),正文是set -x(跟踪)。