我喜欢在带有2个参数的jenkins的shell中执行ant任务,而arg1是带换行符的字符串。
arg1=test1;
test2;
test3
arg2=nothing_new;
通常我会使用""如果字符串中有换行符但这不起作用:
ant target1 -Dparam1="$arg1" -Dparam2=$arg2
Result:
param1=test1
param2=test2
如果我不使用""第一个换行符后的字符串将被忽略:
ant target1 -Dparam1=$arg1 -Dparam2=$arg2
Result:
param1=test1
param2=nothing_new
答案 0 :(得分:2)
我认为这就是你所需要的:
arg1='test1;
test2;
test3'
arg2='nothing_new;'
ant target1 -Dparam1="$arg1" -Dparam2="$arg2"
我在字符串文字和变量周围的双引号周围放了单引号,因此在两个地方都保留了空格。
多行变量声明需要单引号,否则您将设置arg1=test1;
,然后执行两个命令test2
和test3
。
你可以在任何地方使用双引号但我个人更愿意明确你是否希望参数扩展(双引号)或不引用(单引号)。