重定向输出,并在运行bash脚本时仍然看到它们

时间:2014-10-01 10:16:12

标签: bash redirect exec

我的sysadmin创建了一个bash脚本,其中的第一个命令是将输出重定向到日志文件中:

exec > my_app.log

有了这个,我有以下几点:

  • stdout重定向到my_app.log
  • 请参阅我的终端中的stderr

当我手动执行脚本时,我想要以下所有内容:

  • stdout重定向到my_app.log
  • stderr重定向到my_app.err
  • 请参阅我的终端中的stdout
  • 请参阅我的终端中的stderr

我需要更改为exec才能完成所有这些工作?

目前我所做的是打开3个终端。

  • 使用./my_script.sh 2> my_app.err
  • 运行脚本
  • 一个使用tail -f my_app.log
  • 一个使用tail -f my_app.err

我认为这太过分了。

2 个答案:

答案 0 :(得分:1)

请查看以下link,其中此问题已得到解答。阅读tee的手册页了解更多详情。

答案 1 :(得分:1)

echo "hello" | tee file.txt

echo "hello"输出到文件和stdout

如果你需要stderr和stdout,那么echo "hello" 2>&1 | tee file.txt