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?!?
Executing shell commands using Groovy is very easy. For example If you want to execute any unix/linux command using groovy that can be done using execute() method and to see the output of the executed command we can append text after it.
You cannot do redirection in the line:
execute("echo hello > file")
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 echo
command (without the > file
), and then write this to file
yourself in Groovy.
Or you can do:
execute( [ 'bash', '-c', 'echo hello > file' ] )
Which should work as your execute
method will just perform the List.execute()
method
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With