我的问题很简单,如何将bash脚本的所有输出重定向到文件和终端和删除颜色字符从内部脚本本身?
我找不到适合我所有需求的答案。
到目前为止,我尝试将tee
输出到文件和终端,并与2>&1
结合使用以获得stederr
和stdout
,sed
除去颜色字符,而所有这些操作都与exec
一起从在我的脚本中,但是它不起作用,我只能在终端中获取彩色日志,而文件中没有任何内容。
#!/usr/bin/env bash
exec 2>&1 | sed -r 's/\x1b\[[0-9;]*m//g' | tee script.logs
python somepython.py
python someotherpython.py
这里python脚本产生带颜色的输出。
我想将它们记录到终端(未修改)和文件中(不显示颜色)。实际上,我的bash脚本中发生的事情比仅两个python脚本要多得多,这就是为什么我要全局重定向脚本bash的输出,而不仅仅是在每个python脚本之后进行管道传输。]
因此,我使用了exec
,因为尽管它允许重定向脚本的所有输出。
感谢您提供任何建议和帮助,
PS:我不想在文件中添加彩色日志,但是不管终端是否需要在文件中不添加彩色日志,我不在乎终端。
我的问题很简单,如何将bash脚本的所有输出重定向到文件和终端,并从脚本本身中删除颜色字符?我找不到适合我所有需求的答案。 ...
您可以将您的所有呼叫放在一个花括号组中,然后重新分配全部呼叫,例如: