我可以使用& >在一个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脚本停止某些事情 (也停止该程序的日志)
答案 0 :(得分:1)
是的,您必须调用shell来执行这样的任务。一个纯粹的groovy解决方案是使用consumeProcessOutputStream
:
new File("/someDir/something/${NAME}/logs/stop.log").newOutputStream { log ->
"/someDir/myScripts/stop.sh $NAME".execute().consumeProcessOutputStream(log)
}