将stdout和stderr捕获到文件中,也捕获到控制台

时间:2013-01-30 23:14:51

标签: bash exec tee

我正在尝试创建一个脚本,在控制台上显示状态,并创建一个日志文件。为此,我一直在我的bash脚本中使用以下行:

exec > >(tee logfile.txt)

让这一行有效地在控制台上显示stdout并将其存储到logfile.txt中。现在我想要捕获stdout和stderr。我尝试使用

exec 2>&1 >(tee logfile.txt)

这似乎不起作用。为什么?我怎样才能完成任务?

1 个答案:

答案 0 :(得分:1)

只需颠倒重定向的顺序即可。它帮助我从右到左阅读它们:

exec > >(tee logifle.txt) 2>&1