2012-07-23 114 views
1

我有一個腳本,它接受命令行參數,經過一些處理後,它將這些參數發送到java應用程序。Shell腳本:帶引號的命令行參數

其中一些參數可以引用,我想發送這些參數(在引用中)。我使用以下腳本:

$ARGS="" 
for a in [email protected]; do 
    ARGS = ${ARGS} ${a}; 
done 
exec $JAR $ARGS 

其中$ JAR包含命令來運行jar。
但是,如果我運行下面的選項腳本:

script x y "a b" 

腳本把三個參數XÿA B
我想它考慮這些參數爲:x,y「a b」

+0

腳本x和y ' 「A B」' – kev 2012-07-23 05:20:00

+0

用戶將提供命令行參數。所以,我需要在腳本中進行處理。 – sachinpkale 2012-07-23 05:22:01

+0

通過腳本的示例參數,腳本內部的'exec'行應該如何? 'exec $ JAR x y「a b」'? – 2012-07-23 07:04:13

回答

2

Use an array for the arguments.

$ARGS=() 
for a in "[email protected]"; do 
    ARGS+=("${a}") 
done 
exec "$JAR" "${ARGS[@]}" 
+0

它不適用於我。我需要處理一些不同的參數(這在上面的例子中沒有顯示)。所以,在這種情況下,循環是必要的。抱歉!我最初並不清楚。 – sachinpkale 2012-07-23 05:27:08

+0

主要答案仍然沒有改變。 – 2012-07-23 05:29:09

相關問題