【发布时间】:2016-05-13 05:54:38
【问题描述】:
使用 Groovy 并且支持 java.lang.Process,我如何将多个 shell 命令连接在一起?
考虑这个 bash 命令(并假设您的用户名是 foo):
ps aux | grep ' foo' | awk '{print $1}'
这将打印出用户名 - 与您的用户帐户相关的某些进程的一行。
使用 Groovy,ProcessGroovyMethods 文档和代码说我应该能够这样做以获得相同的结果:
def p = "ps aux".execute() | "grep ' foo'".execute() | "awk '{print $1}'".execute()
p.waitFor()
println p.text
但是,除此之外,我无法获得任何文本输出:
def p = "ps aux".execute()
p.waitFor()
println p.text
只要我开始管道,println 就不会打印出任何东西。
想法?
【问题讨论】: