我可以使用& >在一个groovy脚本执行shell命令?

时间:2013-06-04 16:15:29

标签: shell groovy scripting

我可以使用& >在一个groovy脚本执行shell命令?即。

/someDir/myScripts/stop.sh $NAME & > /someDir/something/${NAME}/logs/stop.log

只是

'/someDir/myScripts/stop.sh $NAME & > /someDir/something/${NAME}/logs/stop.log'.execute()

工作还是我需要做一些复杂的事情?

cmd = "/someDir/myScripts/stop.sh $NAME & > /someDir/something/${NAME}/logs/stop.log"
['sh', '-c', cmd].execute();

可能比.execute()工作得更好,但我只是想知道这是否可能

如果我无法实现这一点,我相信我可以使用该脚本中的命令调用另一个.sh,但我想知道我是否可以在.groovy文件中执行此操作


修改

NAME是在我的常规程序中定义的 (也想知道我是否需要这条路) 该程序只是试图使用给定的stop.sh脚本停止某些事情 (也停止该程序的日志)

1 个答案:

答案 0 :(得分:1)

是的,您必须调用shell来执行这样的任务。一个纯粹的groovy解决方案是使用consumeProcessOutputStream

运行该过程
new File("/someDir/something/${NAME}/logs/stop.log").newOutputStream { log ->
    "/someDir/myScripts/stop.sh $NAME".execute().consumeProcessOutputStream(log)
}