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

Ste*_*ker 4 bash shell maven-2 arguments

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

exec mvn exec:java -Dexec.mainClass=... -Dexec.args="$*"
Run Code Online (Sandbox Code Playgroud)

我很遗憾,如果我跑

./myMagicShellScript arg1 "arg 2"
Run Code Online (Sandbox Code Playgroud)

单个字符串arg 2不会像我想的那样通过单个参数.

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

Pau*_*ce. 6

我看了一下mvn脚本并做了一些测试.这就是我想出的:

尝试将脚本更改为如下所示:

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

这会更改每个数组元素中的所有空格,并使用反斜杠进行转义.