Shell脚本:带引号的命令行参数

时间:2012-07-23 05:17:00

标签: shell

我有一个接受命令行参数的脚本,经过一些处理后,它会将这些参数发送给java应用程序。

可以引用其中一些参数,我希望按原样发送这些参数(在引用中)。我正在使用以下脚本:

$ARGS=""
for a in $@; do
    ARGS = ${ARGS} ${a};
done
exec $JAR $ARGS

其中 $ JAR 包含运行jar的命令 但是,如果我使用以下选项运行脚本:

script x y "a b" 

该脚本将三个参数视为 x y a b
我希望它将这些参数视为: x y “a b”

1 个答案:

答案 0 :(得分:2)

Use an array for the arguments.

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