2

我有字符串变量

String var1 = "I am"
String var2 = "here"
String cmd = ("sh /path/shell.sh \""+var1+"\" \""+var2);
Runtime rt = Runtime.getRuntime();
rt.exec(cmd);

但是当我echo $1 $2从我的 shell 脚本执行时,我得到的输出为I am. 为什么引号不起作用?

4

1 回答 1

0

您需要按如下方式调用该命令:

Process process = new ProcessBuilder().command("sh", "/path/shell.sh", var1, var2);
Scanner scan = new Scanner(process.getInputStream());
while(scan.hasNextLine()) {
    //...
}
//...
scan.close();
process.destroy();

您可能也想将其包装在一个try-catch块中。

于 2013-06-27T11:47:40.860 回答