BASH让标准输出和错误输出颜色不同
Overview
shell中运行的程序输出有标准输出(stdout)和错误输出(stderr)两种。当在终端中运行一个进程时,默认是stdout和stderr混在一起的,需要区分只能去读内容,人眼不容易快速区分。
如何让stdout和stderr一眼能够被区分开来?
让进程产生的标准输出(stdout)是绿色,错误输出(stderr)是红色。这样有没有错误或警告一目明了!
方法
颜色控制的话,使用\e[92m
是绿色,\e[93m
是红色,\e[0m
是默认颜色。具体可以去自行查一查表。
- 首先,
> >( ..... )
将stdout传给一个负责绿色命令,2> >( .... )
又将stderr传给一个负责红色的命令。我们都知道stdout的fd号为1,在重定向时可以不写。stderr的fd为2。 - 用
sed
命令负责给文本加上颜色再输出。 - 别忘记对stderr加上红色后,还要用
>&2
输出至stderr,否则直接输出就变成stdout了。
好了,说了方法之后,完整的命令在这里
1要运行的命令 > >(sed $'s,.*,\e[92m&\e[m,') 2> >(sed $'s,.*,\e[93m&\e[m,'>&2)
本博客文章皆属原创(除特别标明外)。 未联系作者获得同意前,不可转载。
All articles are original (except for those specially claimed) and copyrighted. Copying without permission is forbidden.
All articles are original (except for those specially claimed) and copyrighted. Copying without permission is forbidden.
打赏作者
写作不易,感谢支持! 扫个码吧~