Используя Groovy и поддержку java.lang.Process
, как я могу объединить несколько команд оболочки?
Рассмотрим эту команду 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 ничего не распечатывает.
Мысли?