通过shell脚本传递空格分隔的系统属性不起作用

时间:2011-11-21 15:45:21

标签: java bash

我有这个bash文件:

#/bin/bash

PROP="-Dprop=foo bar"

java $PROP -jar Foo.jar

所以,我想要做的是将空格分隔的列表作为系统属性传递。但这在某种程度上是行不通的:

Caused by: java.lang.ClassNotFoundException: bar

所以,似乎Bash将-Dprop=foo bar分解为-Dprop=foobar。我尝试了从双引号到逃避空间角色的所有内容,但似乎没有任何效果。

3 个答案:

答案 0 :(得分:13)

您需要在shell脚本$ variable:

周围添加引号
PROP="-Dprop=foo bar"

java "$PROP" -jar Foo.jar

答案 1 :(得分:0)

如果属性值中包含多个值的空格,请按如下所示设置属性;

PROP="-Dprop=foobar"
PROP="$PROP -DpropTwo='hello world'"

java "$PROP" -jar Foo.jar

答案 2 :(得分:-1)

尝试PROP = -Dprop =“foo bar”或者你可以做

PROP="-Dprop=\"foo bar\""