Groovy agrega el execute
método para String
hacer que la ejecución de shells sea bastante fácil;
println "ls".execute().text
pero si ocurre un error, entonces no hay salida resultante. ¿Hay una manera fácil de obtener tanto el error estándar como el estándar? (¿aparte de crear un montón de código para crear dos hilos para leer ambos flujos de entrada, luego usar un flujo principal para esperar a que se completen y luego convertir las cadenas de nuevo en texto?)
Sería bueno tener algo así;
def x = shellDo("ls /tmp/NoFile")
println "out: ${x.out} err:${x.err}"