如何将stdout和stderr重定向到文件并仍然只输出stderr?

时间:2013-08-25 13:57:45

标签: file shell logging stdout stderr

如何重定向命令的输出,使得stdout和stderr都记录在文件中,并且我仍然希望stderr显示为输出。

我也不想使用bash来做这件事。有这样的方式吗?

1 个答案:

答案 0 :(得分:2)

这很容易:

$ ( ./command.sh >> log ) 2>&1 | tee -a log

将stdout命令写入子shell中的log文件;比你写的 stderr to pipe;而且,我的tee方法,将其保存到log并将其复制到控制台。

使用示例:

$ cat command.sh               
#!/bin/sh

echo out
echo err > /dev/stderr

$ ( ./command.sh >> log ) 2>&1 | tee -a log
err
$ cat log
out
err