传递字符串参数保留引号

时间:2014-07-17 17:51:42

标签: bash jenkins

我遇到了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。

1 个答案:

答案 0 :(得分:0)

这听起来像詹金斯并没有使用bash来解析那些分配线(或其他东西)。

在bash中TEST_VAR="Contents Here"TEST_VAR变量的内容设置为Contents Here(无引号)。

尝试删除该分配行上的引号。