我正在尋找一種方式,Groovy腳本輸出重定向到stderr:如何在groovy中將輸出重定向到stderr?
catch(Exception e) {
println "Want this to go to stderr"
}
我正在尋找一種方式,Groovy腳本輸出重定向到stderr:如何在groovy中將輸出重定向到stderr?
catch(Exception e) {
println "Want this to go to stderr"
}
只是把我的頭頂部可能不是你做了一下自我佈線:
def printErr = System.err.&println
printErr("AHHH")
但這是有點手動
Groovy中可以訪問JRE:
System.err.println "goes to stderr"
雖然有可能是一個更Groovy的田間路...
是的,我希望有一個groovyish的方式。 – timdisney 2008-12-19 19:26:28
如果你只是想短些打字,這裏有兩個選項。首先,你可以導入java.lang.System中,只要你喜歡什麼,特別是短的東西,如「SYS」:
import java.lang.System as sys
sys.err.println("ERROR Will Robinson")
其次,你可以指定System.err的流給一個變量,並使用該變量從那時起作爲System.err的別名,如:
err = System.err
err.println("ERROR again Will Robinson")
這有可能的優勢在於System.err的所有功能都可以訪問,所以你不必每一個單獨線了(例如err.print, err.println等)。
希望有一個標準的Groovy方式,因爲特殊的重命名可能會讓閱讀代碼的人感到困惑。
的另一個相當緊湊的替代是這樣的:
System.err << "Want this to go to stderr"
或者你可以在你的腳本的頂部添加此
def err = System.err
...
err << "Want this to go to stderr"
這就是我現在在做我的常規shell腳本
甚至可以重新定義println:(`def println = System.err。&println`) - 在腳本開始處有用,該腳本通過`foo.write(System.in)`` – sfussenegger 2010-02-12 10:58:38