传入mvn exec:java时保留参数间距等

时间:2010-08-25 21:31:45

标签: bash maven-2 shell arguments

我有一个启动Maven exec的shell脚本:java进程 -

exec mvn exec:java -Dexec.mainClass=... -Dexec.args="$*"

现在很遗憾,如果我跑

./myMagicShellScript arg1 "arg 2"

单个字符串arg 2并没有像我想的那样通过单个参数。

有关如何正确逃避/传递事物的任何想法(最好以干净的方式)?

1 个答案:

答案 0 :(得分:6)

我看了mvn script并做了一些测试。这就是我想出的:

尝试将脚本更改为:

args=(${@// /\\ })
exec mvn exec:java -Dexec.mainClass=... -Dexec.args="${args[*]}"

使用反斜杠更改每个数组元素内的所有空格。