9

这是一个简单的程序。

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。

4

1 回答 1

17

这是一个答案:

./yourScript.sh > >(tee stdout.log) 2> >(tee stderr.log >&2)

如果你的脚本有 STDOUT 和 STDERR 描述符,你会得到 2 个文件stdout.log + stderr.log和所有输出(Err + Out)到控制台。

于 2012-10-17T06:01:31.907 回答