1

我可以在执行 shell 命令的 groovy 脚本中使用 & > 吗?IE

/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 在我的 groovy 程序中定义(也想知道我是否需要路径)该程序只是试图使用给定的 stop.sh 脚本停止某些东西(也停止该程序的日志)

4

1 回答 1

1

是的,你必须调用 shell 来后台处理这样的任务。一个纯粹的常规解决方案是运行该过程consumeProcessOutputStream

new File("/someDir/something/${NAME}/logs/stop.log").newOutputStream { log ->
    "/someDir/myScripts/stop.sh $NAME".execute().consumeProcessOutputStream(log)
}
于 2013-06-04T17:08:15.573 回答