我遇到了bash / Jenkins的问题,当我尝试使用参数触发下游构建时,我这样称呼它:
构建1中的:
-CURRENT_VAR是当前作业的字符串参数
TEST_VAR=$CURRENT_VAR
然后在构建2中:
echo "$TEST_VAR"
我明白了:
<contents of current $CURRENT_VAR>
这正是我想要的。问题是,我不希望我的构建1被参数化,而是想直接设置作业参数,如下所示:
TEST_VAR="Contents Here"
如果我尝试并调用它,当我在构建2时,我得到:
echo "$TEST_VAR"
"Contents Here"
带引号和所有。当我尝试将它与其他字符串连接起来时,双引号保持不变,而我留下的var看起来像:
NewString="Leftside"$TEST_VAR"Rightside"
echo $NewString
或:
NewString="Leftside""$TEST_VAR""Rightside"
echo $NewString
我最终得到了
Leftside"Contents Here"Rightside
有没有办法将我的常量字符串(对于这个特定的作业)传递到我的下游构建中,而不使用它的参数并让它不显示引号?我试过用单引号传递它,但后来它变得更加混乱和噩梦(&lt;'Content Here'&gt;变成&lt;''''Content Here'\''&gt;并在&lt;'内容中回显结果这里'&gt;)对于冗长,我不太熟悉bash。
答案 0 :(得分:0)
这听起来像詹金斯并没有使用bash来解析那些分配线(或其他东西)。
在bash中TEST_VAR="Contents Here"
将TEST_VAR
变量的内容设置为Contents Here
(无引号)。
尝试删除该分配行上的引号。