Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash can';t将变量从Jenkins中的execute shell导出到其他项目(使用属性文件)_Bash_Shell_Jenkins - Fatal编程技术网

Bash can';t将变量从Jenkins中的execute shell导出到其他项目(使用属性文件)

Bash can';t将变量从Jenkins中的execute shell导出到其他项目(使用属性文件),bash,shell,jenkins,Bash,Shell,Jenkins,我有一个Jenkins项目,其中有一个“executeshell”,它执行一些bash命令并将一个变量导出到env。变量: #!/bin/bash ... TARGET_FULLPATH="blablabla" export TARGET_FULLPATH 此外,我还配置了“生成后操作”,包括: “在其他项目上触发参数化生成” “当前生成参数” “预定义参数”->FULLPATH=$TARGET\u FULLPATH 但是,当我运行这个项目时,第一个项目完成后马上开始的另一个项目似乎根本没有

我有一个Jenkins项目,其中有一个“executeshell”,它执行一些bash命令并将一个变量导出到env。变量:

#!/bin/bash

...
TARGET_FULLPATH="blablabla"
export TARGET_FULLPATH
此外,我还配置了“生成后操作”,包括:

  • “在其他项目上触发参数化生成”
  • “当前生成参数”
  • “预定义参数”->FULLPATH=$TARGET\u FULLPATH
  • 但是,当我运行这个项目时,第一个项目完成后马上开始的另一个项目似乎根本没有得到参数FULLPATH

    至少在“executeshell”(第二个项目)中,bash脚本不会为echo$FULLPATH打印任何内容!另外,在第二个项目的“环境变量”中,不包括完整路径

    知道我做错了什么吗


    还有一件事,我不能使用属性文件来存储参数,因为这两个项目运行在不同的服务器上,并且在这些服务器之间复制文件有限制

    您看过这个解决方案吗?

    使用shell预构建步骤+应该能够解决您的问题

    从6月22日开始更新,我添加了一些屏幕副本

    1/添加第一个“Execute shell”脚本以创建属性文件,并添加“注入环境变量”步骤以加载属性文件:

    2/对于演示,我添加了一个“构建后任务”步骤来读取变量

    3/这是控制台输出,它工作:)


    我确实读过这篇文章,但我无法理解,也无法让它在我的问题上发挥作用。对不起,我的詹金斯知识只是一些基本知识。@user3458191布鲁诺提供的答案是正确的。简而言之,将变量值回送到属性文件中,然后在同一作业中,使用“EnvInject”插件加载属性文件。在这一点上,所有后续构建步骤都可以使用它,因此您可以像前面描述的那样将其与“预定义参数”一起使用。使用该解决方案,什么东西对您不起作用?我已经用一些屏幕副本更新了我的答案,请确认它解决了您的问题,并请投票支持我的答案:)答案确实解决了问题,但不是以我希望的方式,没有属性文件!