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

hel*_*hod 7 java bash

我有这个bash文件:

#/bin/bash

PROP="-Dprop=foo bar"

java $PROP -jar Foo.jar
Run Code Online (Sandbox Code Playgroud)

所以,我想在这里做的是将空格分隔的列表作为系统属性传递.但这不知何故不起作用:

Caused by: java.lang.ClassNotFoundException: bar
Run Code Online (Sandbox Code Playgroud)

所以,似乎Bash分手-Dprop=foo bar-Dprop=foo,bar.我尝试了从双引号到逃避空间角色的一切,但似乎没有任何效果.

Ste*_*n C 13

您需要在shell脚本$ variable周围添加引号:

PROP="-Dprop=foo bar"

java "$PROP" -jar Foo.jar
Run Code Online (Sandbox Code Playgroud)

  • 是的..不得不回去自己试验一下......贝壳逃脱可能是一个如此痛苦的屁股. (2认同)
  • 如何通过相同的shell变量传递多个系统属性? (2认同)
  • 如果我们有`PROP =" - Dprop = foo bar"`,`CMD ="java"$ PROP"-jar Foo.jar"`并执行`CMD`该怎么办?似乎ClassNotFoundException会再次发生?请问如何解决这个问题? (2认同)