2016-05-20 28 views
1

我喜歡在jenkins中使用2個參數在shell中執行ant任務,而arg1是帶換行符的字符串。如何使用shell中的換行符將參數傳遞給螞蟻腳本

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 

回答

2

我認爲這是你所需要的:

arg1='test1; 
test2; 
test3' 

arg2='nothing_new;' 

ant target1 -Dparam1="$arg1" -Dparam2="$arg2" 

我已經把單引號放在變量周圍的字符串和雙引號的周圍,所以兩個地方都保留了空格。

多行變量聲明需要單引號,否則你會設置arg1=test1;,然後執行兩個命令test2test3

您可以在任何地方使用雙引號,但我個人更傾向於明確您是否希望參數擴展發生(雙引號)或不引用(單引號)。

+0

非常感謝! –

相關問題