-
Notifications
You must be signed in to change notification settings - Fork 0
Shell Scripting
Invoking shell commands and scripts in Groovy is easy. Put the shell command in a string, then invoke the String's execute() method:
"ls -l ~/".execute()The execute() returns a process, with has a text property that contains the output, as well as a `consumeProcessOutput()' method which you can use to process the output.
This method does not handle wildcards, however.
To print the output in Groovy, you can simply get the text property of the return value of execute() and print it:
println "ls -l".execute().textIn order to process the output, however, (i.e., do something), use the consumeProcessOutput(out, err) function of the process returned by execute(). The method takes two StringBuffer` arguments--one for the out stream and one for the err stream.
Example:
Process process = command.execute()
def out = new StringBuffer()
def err = new StringBuffer()
process.consumeProcessOutput( out, err )
process.waitFor()
if( out.size() > 0 ) println out
if( err.size() > 0 ) println errYou can then work with those streams.