Sử dụng Groovy và nó là hỗ trợ java.lang.Process
, làm cách nào để thêm nhiều lệnh shell vào nhau?Sử dụng groovy, làm cách nào để bạn thêm nhiều lệnh shell?
Cân nhắc lệnh bash này (và giả sử rằng username là foo
):
ps aux | grep ' foo' | awk '{print $1}'
này sẽ in ra tên người dùng - một dòng đối với một số các quy trình liên quan đến tài khoản người dùng của bạn.
Sử dụng Groovy, tài liệu ProcessGroovyMethods và mã nói rằng tôi sẽ có thể làm điều này để đạt được kết quả tương tự:
def p = "ps aux".execute() | "grep ' foo'".execute() | "awk '{print $1}'".execute()
p.waitFor()
println p.text
Tuy nhiên, tôi không thể nhận được bất kỳ đầu ra văn bản cho bất cứ điều gì khác hơn thế này:
def p = "ps aux".execute()
p.waitFor()
println p.text
Ngay sau khi tôi bắt đầu đường ống, println không in ra bất kỳ thứ gì.
Suy nghĩ?
Trong khi câu trả lời của @ tim_yates giải quyết vấn đề cụ thể của tôi theo một cách khác (và tôi rất biết ơn điều đó), câu trả lời này giải quyết câu hỏi OP của toán tử 'hay' của Groovy và' Process 'đối tượng, vì vậy tôi sẽ trao nó. Cảm ơn! –