如何将shell中带换行符的参数传递给ant脚本

如何将shell中带换行符的参数传递给ant脚本,shell,jenkins,ant,Shell,Jenkins,Ant,我喜欢在jenkins的shell中使用2个参数执行ant任务,而arg1是一个带换行符的字符串 arg1=test1; test2; test3 arg2=nothing_new; 如果字符串中有换行符,通常使用“”,但这不起作用: ant target1 -Dparam1="$arg1" -Dparam2=$arg2 Result: param1=test1 param2=test2 如果不使用“”,则将忽略第一个换行符后的字符串: ant target1 -Dparam1=$a

我喜欢在jenkins的shell中使用2个参数执行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

我认为这就是你需要的:

arg1='test1; 
test2; 
test3'

arg2='nothing_new;'

ant target1 -Dparam1="$arg1" -Dparam2="$arg2"
我在字符串文本周围加了单引号,在变量周围加了双引号,所以在这两个地方都保留了空格

多行变量声明周围需要单引号,否则将设置
arg1=test1
然后执行两个命令
test2
test3


您可以在任何地方使用双引号,但就我个人而言,我更愿意说明您是否希望参数展开(双引号)或不展开(单引号)。

非常感谢!