Groovy fügt die execute
Methode hinzu String
, um das Ausführen von Shells ziemlich einfach zu machen.
println "ls".execute().text
Wenn jedoch ein Fehler auftritt, wird keine Ausgabe ausgegeben. Gibt es eine einfache Möglichkeit, sowohl den Standardfehler als auch den Standard zu ermitteln? (außer eine Menge Code zu erstellen; zwei Threads erstellen, um beide Eingabestreams zu lesen, und dann einen übergeordneten Stream verwenden, um darauf zu warten, dass sie abgeschlossen sind, und dann die Zeichenfolgen wieder in Text konvertieren?)
Es wäre schön, so etwas zu haben;
def x = shellDo("ls /tmp/NoFile")
println "out: ${x.out} err:${x.err}"