我有字符串变量
String var1 = "I am"
String var2 = "here"
String cmd = ("sh /path/shell.sh \""+var1+"\" \""+var2);
Runtime rt = Runtime.getRuntime();
rt.exec(cmd);
但是当我从shell脚本执行echo $1 $2
时,我得到的输出为I am
。为什么引号不起作用?
答案 0 :(得分: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
块中。