如何使用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就不会打印任何内容。
有何想法?