在Linux上我使用" tee "捕获" 来源"的输出命令并将其打印到输出日志文件,但失败了。我使用的命令是这样的:
source ./my_run.sh 2>&1 | tee -i my_run_log
my_run.sh 的目的是" make "一些编译工作,以及一些例行工作,如 cd , rm 和 svn update 。 my_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"正如我所料。 任何人都可以帮我找出问题所在吗? 顺便说一句, 我使用 bash shell 在 Red Hat Linux (版本5.9)上工作。 提前谢谢!
更多评论: 我做了一些测试,发现只要 my_run.sh 脚本有" make xxx "其中的东西,然后" tee "将失败。 好像发球不喜欢制作。任何解决方案?
答案 0 :(得分:1)
问题解决了;非常感谢@thatotherguy带领我找到解决方案。日志输出实际上已被 make clean 进程删除。修复 makefile 中的 clean 后,一切都很好。