我有这个bash文件:
#/bin/bash
PROP="-Dprop=foo bar"
java $PROP -jar Foo.jar
所以,我想要做的是将空格分隔的列表作为系统属性传递。但这在某种程度上是行不通的:
Caused by: java.lang.ClassNotFoundException: bar
所以,似乎Bash将-Dprop=foo bar
分解为-Dprop=foo
,bar
。我尝试了从双引号到逃避空间角色的所有内容,但似乎没有任何效果。
答案 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\""