问题描述
这是一个简单的程序.
class Redirection {
public static void main (String args[]){
System.out.println("Hello World_Stdout");
System.err.println("Hello World_Stderr");
}
}
我想在控制台上查看所有输出,但同时我想将stdout和stderr存储在不同的文件中.我尝试了以下命令,但无济于事.
I want to see the all the outputs on a console, but at the same time I want to store stdout and stderr in different files. I tried the following command, to no avail.
$java Redirection 3>&1 2>stderr 1>stdout 1>&3 2>&3
stderr& stdout文件的文件大小为0.
stderr& stdout files have the file size of 0.
所以基本上我想做"tee"命令,但是我也想捕获stderr.
So basically I want to do what "tee" command does but I also want to capture stderr as well.
推荐答案
以下是答案:
./yourScript.sh > >(tee stdout.log) 2> >(tee stderr.log >&2)
如果您的脚本具有STDOUT和STDERR描述符,您将获得2个文件 stdout.log + stderr.log ,并将所有输出(Err + Out)导入控制台.
If your script has STDOUT and STDERR descriptors, you get 2 files stdout.log + stderr.log and all output (Err + Out) to console.
这篇关于Bash重定向:将stderr/stdout保存到其他文件,并仍然在控制台上将它们打印出来的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!