2016-04-24 60 views
0

我使用此代码的所有终端输出写入文件如何停止在BASH中写入日志文件?

exec > >(tee -a "${LOG_FILE}") 
exec 2> >(tee -a "${LOG_FILE}" >&2) 

如何告诉它停下来?例如,如果我不想让一些输出进入日志..

谢谢!

+1

这可能工作(除了告诉它停止),但你知道'脚本'工具吗?这可能是一个更容易解决您的问题的方法。 '人脚本'。祝你好运。 – shellter

+0

非常感谢!你可以发布答案吗? – user3027198

+0

发布为答案。祝你好运。 – shellter

回答

1

这不是完全清楚你的目标是在这里,但这里是一些尝试。

您是否知道script工具?你可以运行script myTerminalOutputFile,之后的任何命令和输出都会被捕获到myTerminalOutputFile。缺点是它捕捉了一切。你会看到有趣的屏幕控制字符,如^[[5m;27j。所以做一个快速测试,看看它是否适合你。

要完成捕获输出,只需输入exit,然后将父shell cmd-line返回给您。

警告:请检查man script了解有关您的特定操作系统版本脚本的固有质感的详细信息。有些比其他人好。在这种情况下,script -k myTerminalOutputFile可能会更好。

IHTH

+0

谢谢!它工作正常,但有垃圾人物真的杀了我..有什么办法摆脱他们? – user3027198

+0

请参阅http://stackoverflow.com/a/30571263/620097。它应该有所帮助。请注意,对于几乎所有删除数据的解决方案,如果出现意外错误,请务必测试您的测试工作以符合后果的严重性。祝你好运。 – shellter

0

您可以通过管“的sed”,然后发球台到日志文件

+0

你能解释一下吗?谢谢) – user3027198