shell脚本执行
在linux环境下,用sh -c 命令执行没有问题;放在linux服务器 用Runtime.exec() 执行就提示上面的错误。
问题原因如下:
关于shell脚本的执行,有两种:
一种是Runtime.exec(c),就是将执行的脚本作为字符串执行传给c执行,这种方式的缺点是,如果c 中还包含命令,就会提示错误信息:“unexpected EOF while looking for matching `"'”,所以这种只适合于简单的命令。
另一种是Runtime.exec(String[]),将命令以数组的方式传进来,shell会去区分是否有多级命令,{“/bin/bash”,"-c","params"},只需要三节数组就可以,如果有多个参数,是通过params中用空格区分。