如何将字符串变量作为shell脚本参数传递?

时间:2013-06-27 10:54:50

标签: java jsp shell process runtime.exec

我有字符串变量

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。为什么引号不起作用?

1 个答案:

答案 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块中。