直接从终端,我可以打电话
sh script.sh "test ing" 1 2
工作正常 - 有3个参数:test ing,1,2
用java调用完全相同的东西
Process call = Runtime.getRuntime().exec("sh script.sh \"test ing\" 1 2")
有4个参数:“test,ing”,1,2
为了澄清,我可以删除引号并调用这两种情况与从java调用具有相同的行为。如何从java调用此脚本以使用其所需的参数行为?
答案 0 :(得分:3)
您也可以尝试:
Process call = Runtime.getRuntime().exec(new String[]{"sh", "script.sh", "test ing", "1", "2"});
这种方式允许您对传递的参数进行更多控制。