2012-07-23 151 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

相关问题