我有一个用来设置env变量的bash文件,名为setter.sh,包含如下内容
setter.sh
set -x var1="something"
在我jenkinsfile里我这样做
sh ". setter.sh" sh "echo $var1"
但是$var1没有被识别出来,这是什么原因呢?
$var1
elcex8rz1#
您的问题不是空格,而是步骤语法。您在两个单独的shell中有两个单独的步骤(命令)。sh ". setter.sh"在一个shell中运行并退出。第二个命令sh "echo $var1"在一个单独的shell中运行,该shell不知道第一个命令的环境。使用multi-line shell命令或Environment Injector插件或其他方法。(warning)。同样,set -x与问题无关,但set option在主题中是set -a(导出),主体是set -x(跟踪)。
sh ". setter.sh"
sh "echo $var1"
set -x
set -a
1条答案
按热度按时间elcex8rz1#
您的问题不是空格,而是步骤语法。您在两个单独的shell中有两个单独的步骤(命令)。
sh ". setter.sh"
在一个shell中运行并退出。第二个命令sh "echo $var1"
在一个单独的shell中运行,该shell不知道第一个命令的环境。使用multi-line shell命令或Environment Injector插件或其他方法。(warning)。
同样,
set -x
与问题无关,但set option在主题中是set -a
(导出),主体是set -x
(跟踪)。