存在“ex / try.groovy”,我尝试:
println "ls -al |grep try".execute(null, new File("/home/roroco/Dropbox/jvs/ro-idea/ex")).text
它没有输出任何东西
但是当我尝试跟随时,它会输出“try.groovy”
roroco@roroco ~/Dropbox/jvs/ro-idea/ex $ cd /home/roroco/Dropbox/jvs/ro-idea/ex;ls -al |grep try
-rw-r--r-- 1 roroco roroco 95 Nov 17 17:28 try.groovy
我的问题如何使groovy输出与终端相同
答案 0 :(得分:2)
你不能在这里使用|
,因为它是由shell处理的。使用sh -c
执行或管道自己。见http://groovy.codehaus.org/Process+Management
def p = ['sh', '-c', 'ls /tmp | grep groovy'].execute()
p.waitFor()
println p.text
或
def p1 = 'ls /tmp'.execute()
def p2 = 'grep groovy'.execute()
p1 | p2
p2.waitFor()
println p2.text