我有困难,从那里嵌套变量使用shell脚本(bash)的启动java程序。 基本上有需要传递给Java程序的许多系统和-D Java属性。 我想一个低于其他组织他们在一个更好的方式,因为他们很难在一行时阅读。
这类似于“ 通过shell脚本传递一个空格隔开的系统属性不起作用 ”,但不一样的。
这里是一个剥离下来的样本。 想象一下,像这样的Java程序:
public class Main {
public static void main(String[] args) {
for (String s : args) {
System.out.println(s);
}
}
}
当调用它是这样的:
java Main "First_Line" "Second line with spaces"
它会给OK结果是这样回应:
First_Line Second line with spaces
但是,如果像这样的脚本用于:
#!/bin/sh
PARAM01="FirstLine"
PARAM02="Second line with spaces"
PARAMS="$PARAM01 $PARAM02"
java Main $PARAMS
然后,所有空格都被吃掉,第二个参数传递加引号到Java。 结果如下:
FirstLine Second line with spaces
曾试图以不同的方式引用变量在shell脚本,但至今没有成功。 如何报价shell变量,使空格都被保留和参数传递原封不动地java吗?