我试图从Groovy脚本运行复合shell命令。这是其中一个命令,您将其与“& &”分开,以便第二个命令在第一个命令失败时不会运行。无论出于何种原因,我都无法使它工作。我用的是:从Java/Groovy运行复合shell命令
println "custom-cmd -a https://someurl/path && other-cmd -f parameter".execute([], new File('/some/dir')).text
外壳保持曲解命令抛出类似的错误“定制CMD -f选项无效”这就像有人忽略的“& &”。我也尝试过使用分号,但并不幸运。我尝试使用直接的Java API Runtime.getRuntime()。exec()并将命令分割成数组。我尝试在单引号中包装命令并将其提供给'/ bin/sh -c',但没有任何效果。
如何从Java运行复合shell命令?我知道我过去做过这件事,但今天我无法弄清楚。
也许你需要转义&&。 –
[如何正确调用groovy中的shell命令]的可能重复(http://stackoverflow.com/questions/12512919/how-to-call-shell-commands-from-groovy-correctly)。你不能像&& <|那样使用“shellism”作为命令。使用'-c'并将其作为_one_参数传递(最简单的方法是由字符串数组完成,如果引用变得棘手) – cfrick