我正在寻找一种方式,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