i want to execute shell commands from my groovy script.
I tested the following:
"mkdir testdir".execute()
and this just works fine.
Now i wanted to make a file, write something to the file and then open a text editor to view the file.
def execute(cmd) {
def proc = cmd.execute()
proc.waitFor()
}
execute("touch file")
execute("echo hello > file")
execute("gedit file")
Now gedit opens correctly but ther is no “hello” string in the file.
How is this working?!?
You cannot do redirection in the line:
So nothing gets written to the file. The easiest way to handle this is probably to wrap all your commands into a single shell script, then execute this script.
Otherwise, you can read the standard output from the
echocommand (without the> file), and then write this tofileyourself in Groovy.Or you can do:
Which should work as your
executemethod will just perform theList.execute()method