这是一个简单的程序。
class Redirection {
public static void main (String args[]){
System.out.println("Hello World_Stdout");
System.err.println("Hello World_Stderr");
}
}
我想在控制台上看到所有输出,但同时我想将stdout和stderr存储在不同的文件中。我尝试了以下命令,但没有用。
$java Redirection 3>&1 2>stderr 1>stdout 1>&3 2>&3
stderr的&安培; stdout文件的文件大小为0。
所以基本上我想做“tee”命令,但我也想捕获stderr。
答案 0 :(得分:13)
以下是答案:
./yourScript.sh > >(tee stdout.log) 2> >(tee stderr.log >&2)
如果您的脚本具有STDOUT和STDERR描述符,则会获得2个文件 stdout.log + stderr.log 以及所有输出(Err + Out)到控制台。