如何在 Linux 中使用 "tee" 和 "source" 命令?

How to use "tee" with "source" command in Linux?

在 Linux 我正在使用“tee”来捕获“source”命令的输出并打印它输出日志文件,但失败了。我使用的命令是这样的:

source ./my_run.sh 2>&1 | tee -i my_run_log

my_run.sh 的目的是“制作”一些编译工作,以及一些例行工作,如 cdrmsvn updatemy_run.sh的内容如下:

  make clean
  cd ..
  rm ./xxx
  svn up -r 166
  cd ./aaa/
  sed -i -e ......
  make compile
  make run

但是,当我 运行 它时,“tee” 根本不起作用,并且根本不给我日志文件。为了验证整个环境是否良好,我做了一个更简单的测试:

ll 2>&1 | tee -i log

并且在这个更简单的场景中,“tee” 工作得非常好,并按我的预期打印出 "log"。 谁能帮我找出我的问题出在哪里? 顺便提一句, 我正在开发 Red Hat Linux(5.9 版),使用 bash shell。 提前致谢!

更多评论: 我做了一些更多的测试,发现只要 my_run.sh 脚本里面有“make xxx”的东西,那么“ tee" 将失败。 似乎 tee 不喜欢 make。任何解决方案?

问题已解决;非常感谢@thatotherguy 带领我找到了解决方案。日志输出实际上被make clean过程删除了。修复 makefile 中的 clean 内容后,一切都很好。