以bash获取颜色输出

时间:2010-03-13 10:24:14

标签: bash

在linux终端上编译一些项目时,我通常得到一个包含大量信息的长输出。通常这个信息是MONOCHROME。我想知道bash是否可以以某种方式进行修改,因此在所有输出或某些特定输出中(例如来自Makefile等)我可以获得不同的颜色依赖,例如:

make[1]: Leaving directory 

g++ -DHAVE_CONFIG_H     -I. 

由于

5 个答案:

答案 0 :(得分:14)

我发现在bash中tput setf不起作用。我发现这个适用于bash的命令运行良好

handy tput commands

tput bold - Bold effect
tput rev - Display inverse colors
tput sgr0 - Reset everything
tput setaf {CODE}- Set foreground color, see color {CODE} below
tput setab {CODE}- Set background color, see color {CODE} below
Colors {code} code for tput command

Color {code}    Color
0    Black
1    Red
2    Green
3    Yellow
4    Blue
5    Magenta
6    Cyan
7    White

答案 1 :(得分:10)

当然,只需使用Bash功能,比如说这个:

make()
{
  pathpat="(/[^/]*)+:[0-9]+"
  ccred=$(echo -e "\033[0;31m")
  ccyellow=$(echo -e "\033[0;33m")
  ccend=$(echo -e "\033[0m")
  /usr/bin/make "$@" 2>&1 | sed -E -e "/[Ee]rror[: ]/ s%$pathpat%$ccred&$ccend%g" -e "/[Ww]arning[: ]/ s%$pathpat%$ccyellow&$ccend%g"
  return ${PIPESTATUS[0]}
}

(原来是通过Highlight Warnings in Make。)

答案 2 :(得分:5)

您可以使用tput命令和terminfo(5)数据库进行移植。 例如,

tput setf 5

将终端作为标准输出,将前景色设置为紫色(或类似的东西;我是色盲)。 tput setf 0将前景色重置为默认值。

有关详情,请查看terminfo

答案 3 :(得分:1)

安装和使用colormake是另一个简单的选择。

 sudo apt-get install colormake

答案 4 :(得分:0)

看起来你想要make(1)的彩色输出。 在这种情况下,我建议使用gnu make补丁 http://git.goodpoint.de/?p=make.git;a=shortlog;h=refs/heads/color-v5.1 在ML上描述:http://old.nabble.com/-rfc--Colorized-output-for-GNU-make--td32547742.html