Получите вывод цвета в ударе

при компиляции некоторых проектов на терминале Linux я обычно получаю долгий вывод, состоящий из большой информации. Обычно этой информацией является МОНОХРОМ. Интересно, может ли удар быть изменен так или иначе, таким образом, во всех выводах или в некоторых определенных выводах (как от Make-файла, и т.д.) я могу получить различные цвета dependeing на, например:

make[1]: Leaving directory 

или

g++ -DHAVE_CONFIG_H     -I. 

и т.д.

Спасибо

14
задан Open the way 13 March 2010 в 10:24
поделиться

2 ответа

Конечно, просто используйте функции 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]}
}

(Первоначально через Выделить предупреждения в Make .)

10
ответ дан 1 December 2019 в 09:01
поделиться

Вы можете сделать это переносимо, используя команду tput и базу данных terminfo (5) . {{ 1}} Например,

tput setf 5

со стандартным терминалом будет устанавливать фиолетовый цвет переднего плана (или что-то подобное; я дальтоник). tput setf 0 сбрасывает цвет переднего плана на значение по умолчанию.

Для получения дополнительной информации посмотрите terminfo .

5
ответ дан 1 December 2019 в 09:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: