[shell] "Разукрасить" вывод программы на консоль
-
- Заглянувший
- Сообщения: 11
- Зарегистрирован: 28 сен 2006, 18:08
- Откуда: Minsk, BY
- Контактная информация:
[shell] "Разукрасить" вывод программы на консоль
Хочется странного : есть некая программа, которая выводит кучу всего на консоль построчно. Хотелось бы "разукрасить" этот вывод: например, если в строке есть слово error, то все строка красным и т.п. И еще хотелось чтобы это все происходило в "реальном" времени, т.е. раскрашивалось и выводилось на консоль по мере работы программы.
Возможно ли такое(нутром чую что возможно ) ? И как ?
ЗЫ. С shell-scripting знаком поверхностно но учиться не прочь
Возможно ли такое(нутром чую что возможно ) ? И как ?
ЗЫ. С shell-scripting знаком поверхностно но учиться не прочь
Не говорите что мне делать и я не скажу куда вам идти.
- Victor Gr.
- Неотъемлемая часть форума
- Сообщения: 891
- Зарегистрирован: 13 авг 2004, 15:39
- Откуда: Минск
- Контактная информация:
-
- Интересующийся
- Сообщения: 65
- Зарегистрирован: 03 апр 2008, 18:54
- Откуда: Родом: Чернавчицы, Брест, Бульбастан; Сейчас: Оломоуц, Чехия.
цветовой вывод на терминал
Dziman, ничего тут странного нет, обычный полёт фантазии, чего многим не хватает или не дано!
Надеюсь "консоль" работает на vt10X совместимом терминальном эмуляторе (все программные в Linux, включая putty в Windows). До написания скрипта необходимо понимать как работает вывод, вчастности на терминал. Программа будь-то `cat` или `mc` по своей сути просто выводит символы на то, что им предоставляется запускаемым процессом как stdout,
где STDOUT_FILENO = 1 (обычно).
Исторически терминалами были железные ящики с меньшей вычислительной способностью, чего хватало на то чтоб плучать символы и в зависимости от того, что получено выполнять отображение и манипуляции с содержимым экрана.
man console_codes, http://kerneltrap.org/man/linux/man4/console_codes.4 содержит достаточно информации для того, чтобы узнать что каждый символ выполняет. Для простоты надо разделить символьный поток на
* управляющие символы
* управляющие последовательности символов
* обычные симвлы
типичные фунции:
+ перевод курсора на новую строку, перевод его в начало строки и пр
+ escape последовательности, указание атрибутов символов и пр
+ все, что не являются управляющими и не входят в состав последовательности.
Терминальный вывод -- это очень кривое наследие, с которым приходится считатся. Но почему-то это наследие не имеет в себе ничего подобного на Turbo Vision look and feel. Причин можно назвать много, но основная, это война как аппаратных терминалов, так и UNIX на чисто коммерческой основе. С программной точки зрения, универсальность посимвольной работы и её простота, позволяют реализовывать теперь уже эмуляторы терминалов очень просто, учитывя что фунционал очень примитивный. Все символы идущие в stdout/stderr попадая в терминал выполняют свои функции, но попадая в перенаправленный файл или pipe, они просто пугают. И это одна из кривостей (for tty в скрипте предусмотрено для этого случая).
(Ещё немного потерпеть прежде чем начнётся скриптинг.)
Проработав в текстовой консоли достаточно времени, я просто поразился тому, как идеи терминального вывода застыли в 70х. Для меня кажется тривиальным иметь современное окно вывода разделённое на части в которых видны отдельно stdout, stderr. Этого легко достичь программно, но это также очень легко и без костылей можно было делать в эмуляторах терминалов. Кроме этого каждый вывод можно было делать в свой кусок памяти видео адаптера(64/128 мегов рамы просто так греют комнату http://hedera.linuxnews.pl/_news/2002/0 ... /1445.html ), который бы управлялся как окно, то есть скроллинг, изменение размеров и положения (помимо всего прочего).
О чём тут говорить, если главный разработчик основной библиотеки glibc, с радостью сообщает читателям своего блога, что он таки использует цветной `grep` http://udrepper.livejournal.com/17109.html , а разработчики ядра линукс до сих пор охотятся за сообщениями stderr скролируя однообразный суп выводимый системой сборки?
Приступим. Цвета и атрибуты, естественно по вкусу.
Скачать: ftp://flower.upol.cz/crazy/colorize.sh
Что-то такое придумалось. Каждый `color` это, можно сказать, цветной `grep`. Где-то ещё я делал подсветку скриптов (нетривиально) и вывода типа как у `stat`, но это нужно поискать.
Для игр более сложных в плане разрисовки, надо уже более детальное знание `sed` и basic regular expressions (man regex). Для понимания скрипта, надо немного посидеть, как моя школьная математица говорила: "покрутить".
Я как-то хотел было сделать свою систему окон вдобавок к обычным терминалам и свою примочку к редактору с качественной подстветкой синтаксиса у regex. За много десятилетий UNIX и Emacs ни у первых ни у eLISP-вторых таких достижений я не вижу. И как мне кажется отсуствие подсветки в таких базовых вещах говорит только о том, как всё плохо в "современных компьютерных технологиях".
Так что если есть желание работать вместе, милости прошу.
Надеюсь "консоль" работает на vt10X совместимом терминальном эмуляторе (все программные в Linux, включая putty в Windows). До написания скрипта необходимо понимать как работает вывод, вчастности на терминал. Программа будь-то `cat` или `mc` по своей сути просто выводит символы на то, что им предоставляется запускаемым процессом как stdout,
Код: Выделить всё
write(STDOUT_FILENO, buf, count);
Исторически терминалами были железные ящики с меньшей вычислительной способностью, чего хватало на то чтоб плучать символы и в зависимости от того, что получено выполнять отображение и манипуляции с содержимым экрана.
man console_codes, http://kerneltrap.org/man/linux/man4/console_codes.4 содержит достаточно информации для того, чтобы узнать что каждый символ выполняет. Для простоты надо разделить символьный поток на
* управляющие символы
* управляющие последовательности символов
* обычные симвлы
типичные фунции:
+ перевод курсора на новую строку, перевод его в начало строки и пр
+ escape последовательности, указание атрибутов символов и пр
+ все, что не являются управляющими и не входят в состав последовательности.
Терминальный вывод -- это очень кривое наследие, с которым приходится считатся. Но почему-то это наследие не имеет в себе ничего подобного на Turbo Vision look and feel. Причин можно назвать много, но основная, это война как аппаратных терминалов, так и UNIX на чисто коммерческой основе. С программной точки зрения, универсальность посимвольной работы и её простота, позволяют реализовывать теперь уже эмуляторы терминалов очень просто, учитывя что фунционал очень примитивный. Все символы идущие в stdout/stderr попадая в терминал выполняют свои функции, но попадая в перенаправленный файл или pipe, они просто пугают. И это одна из кривостей (for tty в скрипте предусмотрено для этого случая).
(Ещё немного потерпеть прежде чем начнётся скриптинг.)
Проработав в текстовой консоли достаточно времени, я просто поразился тому, как идеи терминального вывода застыли в 70х. Для меня кажется тривиальным иметь современное окно вывода разделённое на части в которых видны отдельно stdout, stderr. Этого легко достичь программно, но это также очень легко и без костылей можно было делать в эмуляторах терминалов. Кроме этого каждый вывод можно было делать в свой кусок памяти видео адаптера(64/128 мегов рамы просто так греют комнату http://hedera.linuxnews.pl/_news/2002/0 ... /1445.html ), который бы управлялся как окно, то есть скроллинг, изменение размеров и положения (помимо всего прочего).
О чём тут говорить, если главный разработчик основной библиотеки glibc, с радостью сообщает читателям своего блога, что он таки использует цветной `grep` http://udrepper.livejournal.com/17109.html , а разработчики ядра линукс до сих пор охотятся за сообщениями stderr скролируя однообразный суп выводимый системой сборки?
Приступим. Цвета и атрибуты, естественно по вкусу.
Код: Выделить всё
#!/bin/sh
color() {
# $1 -- regex
# $2 -- color code
# $3 -- next color code
printf %s "`eval echo $TERMINAL_OUTPUT`"
}
# for tty
[ -t 1 ] && {
# escape symbol
E=`printf '\x1B'`
# default rendering
D="$E[0m"
# attributes for filtered stuff (reset bg color and bold, set fg color)
V="$E[40;22;3"
TERMINAL_OUTPUT='s-"$1"-"$V$2m&$V${3-0}m"-;'
}
exec sed "
`color '[^:]*' 4 3`
`color : 3 2`
`color AMD 6 2`
`color Intel 6 2`
`color Athlon '6;44' 2`
`color Pentium '6;44' 2`
"
Код: Выделить всё
$ sh colorize.sh </proc/cpuinfo
Что-то такое придумалось. Каждый `color` это, можно сказать, цветной `grep`. Где-то ещё я делал подсветку скриптов (нетривиально) и вывода типа как у `stat`, но это нужно поискать.
Для игр более сложных в плане разрисовки, надо уже более детальное знание `sed` и basic regular expressions (man regex). Для понимания скрипта, надо немного посидеть, как моя школьная математица говорила: "покрутить".
Я как-то хотел было сделать свою систему окон вдобавок к обычным терминалам и свою примочку к редактору с качественной подстветкой синтаксиса у regex. За много десятилетий UNIX и Emacs ни у первых ни у eLISP-вторых таких достижений я не вижу. И как мне кажется отсуствие подсветки в таких базовых вещах говорит только о том, как всё плохо в "современных компьютерных технологиях".
Так что если есть желание работать вместе, милости прошу.
Последний раз редактировалось olecom 09 апр 2008, 12:36, всего редактировалось 2 раза.
-
- Интересующийся
- Сообщения: 65
- Зарегистрирован: 03 апр 2008, 18:54
- Откуда: Родом: Чернавчицы, Брест, Бульбастан; Сейчас: Оломоуц, Чехия.
продвинутая подстветка без костылей
Как отсупление от темы в свою сторону, хочу сказать о том, что пришло в голову на счёт всех этих подсветок. Важность их трудно переоценить. Так один знакомый олимпиадник по информатике в школе рассказывал о том, как он фанател после перехода с Borland Pascal 5 на 6/7, где была уже подсветка, и кучи синтаксических и прочих ошибок запросто всплывали на экране. Однообразие напрягает. В отличие от книжки, программируя необходимо сильно думать (те крутые лиспокодеры думают ещё и про скобки).
Не надо ничего изобретать в плане нечитабельных regex и прочих костылей. Сам парсер, будь-то `sh`, `sed`, `gcc` или луюбой другой (да XML!), должен иметь интерфейс к выводу подсвеченного кода. Что как не сам парсер знает все детали своего синтаксиса?
Похоже в 70х для этого не было достаточно производительности, денег, сил или фантазии программистов. Но вот уже более десятка лет процессоры в консоли только отдыхают, ожидая бесконечные микросекунды между нажатиями клавишь пользователя...
Не надо ничего изобретать в плане нечитабельных regex и прочих костылей. Сам парсер, будь-то `sh`, `sed`, `gcc` или луюбой другой (да XML!), должен иметь интерфейс к выводу подсвеченного кода. Что как не сам парсер знает все детали своего синтаксиса?
Похоже в 70х для этого не было достаточно производительности, денег, сил или фантазии программистов. Но вот уже более десятка лет процессоры в консоли только отдыхают, ожидая бесконечные микросекунды между нажатиями клавишь пользователя...
Последний раз редактировалось olecom 07 апр 2008, 23:39, всего редактировалось 2 раза.
-
- Интересующийся
- Сообщения: 65
- Зарегистрирован: 03 апр 2008, 18:54
- Откуда: Родом: Чернавчицы, Брест, Бульбастан; Сейчас: Оломоуц, Чехия.
про олимпиады
Вспоминая про олимпиадников.
http://dl2.gsu.by/olymp/
Тренируют мышцы чтоб потом сравнивать у кого больше? Вообще кто сказал, что те задачи -- это круто, даже если они сложные? Неужели "автоматическая" система конторля так забавляет живых и одарённых программистов/информатиков? Куда все эти дети деваются? Жизнь, не спорт? Преподавателям не жалко тратить время на придумывание очередных запутынных зОдач со схематическим, но запутанным решением?
Уважаемые преподаватели или близкие к ним, разуйте глаза и покажите свои расчётки, признайтейтес в неэффективности и инертности ваших образовательных решений. Перестаньте уродовать детей!
http://dl2.gsu.by/olymp/
Тренируют мышцы чтоб потом сравнивать у кого больше? Вообще кто сказал, что те задачи -- это круто, даже если они сложные? Неужели "автоматическая" система конторля так забавляет живых и одарённых программистов/информатиков? Куда все эти дети деваются? Жизнь, не спорт? Преподавателям не жалко тратить время на придумывание очередных запутынных зОдач со схематическим, но запутанным решением?
Уважаемые преподаватели или близкие к ним, разуйте глаза и покажите свои расчётки, признайтейтес в неэффективности и инертности ваших образовательных решений. Перестаньте уродовать детей!
-
- Интересующийся
- Сообщения: 65
- Зарегистрирован: 03 апр 2008, 18:54
- Откуда: Родом: Чернавчицы, Брест, Бульбастан; Сейчас: Оломоуц, Чехия.
Re: про олимпиады
Хотелось бы это вынести в отдельную тему или статью, конечно.olecom писал(а):Вспоминая про олимпиадников.
Эффект суперпрограммиста понятно и по русски:
http://www.compitech.ru/html.cgi/arhiv/ ... at_130.htm
Re: продвинутая подстветка без костылей
Да вы, товарищ, оказывается попросту некомпетентны и воду в ступе потолочь любите. Вот вам картинка, где видно, почему в 70-х цветной вывод был не нужен. А в 80-х, на всякий случай вам скажу, 90% дисплеев были чёрно-белые, соответственно, о каком цвете могла идти речь?olecom писал(а):Похоже в 70х для этого не было достаточно производительности, денег, сил или фантазии программистов. Но вот уже более десятка лет процессоры в консоли только отдыхают, ожидая бесконечные микросекунды между нажатиями клавишь пользователя...
Иными вечерами я пью, чтобы кого-нибудь не пристрелить. Это акт благотворительности. Не за что.
Re: продвинутая подстветка без костылей
Дико извиняюсь - не "черно-белые", а "монохромные"....myst писал(а):Да вы, товарищ, оказывается попросту некомпетентны и воду в ступе потолочь любите. Вот вам картинка, где видно, почему в 70-х цветной вывод был не нужен. А в 80-х, на всякий случай вам скажу, 90% дисплеев были чёрно-белые, соответственно, о каком цвете могла идти речь?olecom писал(а):Похоже в 70х для этого не было достаточно производительности, денег, сил или фантазии программистов. Но вот уже более десятка лет процессоры в консоли только отдыхают, ожидая бесконечные микросекунды между нажатиями клавишь пользователя...
Ubuntu 11.10:
Laptop - Acer Aspire 5738ZG
Desktop - Intel Core i5-2300 2.8GGz, RAM 8 GB, MB - MSI PH67A-C45, Video nVidia GeForce 560
Laptop - Acer Aspire 5738ZG
Desktop - Intel Core i5-2300 2.8GGz, RAM 8 GB, MB - MSI PH67A-C45, Video nVidia GeForce 560
-
- Интересующийся
- Сообщения: 65
- Зарегистрирован: 03 апр 2008, 18:54
- Откуда: Родом: Чернавчицы, Брест, Бульбастан; Сейчас: Оломоуц, Чехия.
Re: продвинутая подстветка без костылей
ЭЭх, молодёжь... Вам бы только оскорблять.myst писал(а):Да вы, товарищ, оказывается попросту некомпетентны и воду в ступе потолочь любите. Вот вам картинка, где видно, почему в 70-х цветной вывод был не нужен. А в 80-х, на всякий случай вам скажу, 90% дисплеев были чёрно-белые, соответственно, о каком цвете могла идти речь?olecom писал(а):Похоже в 70х для этого не было достаточно производительности, денег, сил или фантазии программистов. Но вот уже более десятка лет процессоры в консоли только отдыхают, ожидая бесконечные микросекунды между нажатиями клавишь пользователя...
(не в тему текстового режима, а ответ на невежество и хамство)
http://en.wikipedia.org/wiki/Xerox_Alto
можно придратся:
"the Alto's only common output device was a bi-level (black and white) CRT display"
Цветастые трубки -- это пятидесятые. А деньги на них двадцать лет спустя у исследователей, супер-программеров, а не коммерческих структур, могли найтись.
http://en.wikipedia.org/wiki/CT-100
Однако что бы вы, myst, сказали на счёт пормежутка 90х? (вопрос риторический, отвечать не надо)
Где тут включается список игнорирования?
_____
В контексте UNIX, PARC и иже с ними не находятся, поэтому ссылаться на них бессмысленно.
Что касается денег, то Bell Labs. (мы всё ещё про UNIX, вы не забыли?) это вам не MIT и не ARPA, они и на PDP-11/20 еле наскребли.
А в 90-х всё как раз и поцветнело. То, что должно было поцветнеть. Это вопрос из разряда "Почему нет FAR под UNIX. Потому что те, кому он нужен, не могут его написать, а тем, кто может написать, он не нужен." Аналогично и цветной вывод. Кстати, патчи всё-равно приветствуются.
Что касается денег, то Bell Labs. (мы всё ещё про UNIX, вы не забыли?) это вам не MIT и не ARPA, они и на PDP-11/20 еле наскребли.
А в 90-х всё как раз и поцветнело. То, что должно было поцветнеть. Это вопрос из разряда "Почему нет FAR под UNIX. Потому что те, кому он нужен, не могут его написать, а тем, кто может написать, он не нужен." Аналогично и цветной вывод. Кстати, патчи всё-равно приветствуются.
Иными вечерами я пью, чтобы кого-нибудь не пристрелить. Это акт благотворительности. Не за что.
Как счастливый обладатель компьютерного класса на терминалах ICL VT420 (1993 г.в.) - могу только подтвердить слова тов. myst - B&W.
Кафедра ЭВМ и HP Apollo (архитектура motorolla3) - чёрно-зелёное.
Оба конец восьмидесятых - начало девяностых.
VT420: black & white и парочку полутонов на их комбинировании (1-2). 80x25, 80x30, 80x50 и т.д. IMHO цвет существенно увеличивал бы стоимость этих устройств.
В противоположность им - Sillicon Graphics Indy (1993 г.в.) - штатный 20' цветной монитор. Стоимость - фантастическая. Распространённость - только в очень специализированных конторах (видеообработка, CAD, графика).
Цвет долгое время был прерогативой дорогостоящих рабочих станций. Прорыв PC с его графическими режимами только подчеркнул, насколько велик был разрыв между доступными (читай чернобелыми текстовыми) и элитарными (читай цветными графическими) решениями.
Кафедра ЭВМ и HP Apollo (архитектура motorolla3) - чёрно-зелёное.
Оба конец восьмидесятых - начало девяностых.
VT420: black & white и парочку полутонов на их комбинировании (1-2). 80x25, 80x30, 80x50 и т.д. IMHO цвет существенно увеличивал бы стоимость этих устройств.
В противоположность им - Sillicon Graphics Indy (1993 г.в.) - штатный 20' цветной монитор. Стоимость - фантастическая. Распространённость - только в очень специализированных конторах (видеообработка, CAD, графика).
Цвет долгое время был прерогативой дорогостоящих рабочих станций. Прорыв PC с его графическими режимами только подчеркнул, насколько велик был разрыв между доступными (читай чернобелыми текстовыми) и элитарными (читай цветными графическими) решениями.
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...
-
- Интересующийся
- Сообщения: 65
- Зарегистрирован: 03 апр 2008, 18:54
- Откуда: Родом: Чернавчицы, Брест, Бульбастан; Сейчас: Оломоуц, Чехия.
Цветной-текстовый
Да... Где были мы, а где они?..
* 94й деревня Чернавчицы. Двойка и SVGA 14" у препода, который "Spear of Destiny" гонял,
(цветные) корветы, спектрумы и прочие приставки уже не редкость.
Об общей инерционности образования где-то уже было.
В плане программирования всё стало равным до того, что можно посмотреть и порассуждать о "прогрессе". 90-е -- чип и инет прогресс, так как interactive TV с телетекстом криво выходило в никуда. Это бабло хлынуло в дот комы, но кабеля много еды не просят. А open source ещё а 80х был open source, теперь только распределённый.
_____
* 92-93й брестский областной институт повышения квалификации школьных учителей: цветные VGA/SVGA (плоские ходилки и Цивилизация!), монохромные белые и зелёные, двойки и тройки.mend0za писал(а):Цвет долгое время был прерогативой дорогостоящих рабочих станций.
* 94й деревня Чернавчицы. Двойка и SVGA 14" у препода, который "Spear of Destiny" гонял,
(цветные) корветы, спектрумы и прочие приставки уже не редкость.
Об общей инерционности образования где-то уже было.
В плане программирования всё стало равным до того, что можно посмотреть и порассуждать о "прогрессе". 90-е -- чип и инет прогресс, так как interactive TV с телетекстом криво выходило в никуда. Это бабло хлынуло в дот комы, но кабеля много еды не просят. А open source ещё а 80х был open source, теперь только распределённый.
Цветной-текстовый? Собственно о чём и речь.mend0za писал(а):Прорыв PC с его графическими режимами только подчеркнул, насколько велик был разрыв между доступными (читай чернобелыми текстовыми) и элитарными (читай цветными графическими) решениями.
_____
-
- Интересующийся
- Сообщения: 65
- Зарегистрирован: 03 апр 2008, 18:54
- Откуда: Родом: Чернавчицы, Брест, Бульбастан; Сейчас: Оломоуц, Чехия.
разукрасим интерактивно сборку вЯдра
Да, что-то народ как-то не так...
Разукрашивание -- дети этим любят заниматся, а им бесконечные задачки про непонятно что (почитал здесь про 8й класс). Дети вообще рулят, тока отупевшим взрослым (включая большинство голодных преподов) этого не понять... Итак, назад в детство!
Сделаем разукрашивание "в реальном времени", хотя термин и не подходящий. real time -- это про интустриальное управление.
Более подходит "интерактивный". Interaction -- взаимодействие, по-этому надо чтобы фломастеры взаимодействовали с выводом программ. В вакууме они бесполезны.
Может сборка топикового вЯдра расшевелит аудиторию? Скрипт можно взять и прикрутить в kbuild, запостить в LKML. Девелоперы будут рады, они бедняги всё хотят вЯдро.
Playing with printk() By Jonathan Corbet October 9, 2007
http://lwn.net/Articles/253726/
О! Тут меня цитировали. Только вЯдерный даунизм ещё больше крепчал.
Посмотрев на это, может кто из пых-пыхокодеров прикрутит GNU highlight сюда или что-то такое?Скачать: ftp://flower.upol.cz/crazy/colorize-linux-build.sh
Как из этого сделать демон, разделить консоль на две stdout, stderr области, можно дать как домашнее задание.
Разукрашивание -- дети этим любят заниматся, а им бесконечные задачки про непонятно что (почитал здесь про 8й класс). Дети вообще рулят, тока отупевшим взрослым (включая большинство голодных преподов) этого не понять... Итак, назад в детство!
Сделаем разукрашивание "в реальном времени", хотя термин и не подходящий. real time -- это про интустриальное управление.
Более подходит "интерактивный". Interaction -- взаимодействие, по-этому надо чтобы фломастеры взаимодействовали с выводом программ. В вакууме они бесполезны.
Может сборка топикового вЯдра расшевелит аудиторию? Скрипт можно взять и прикрутить в kbuild, запостить в LKML. Девелоперы будут рады, они бедняги всё хотят вЯдро.
Playing with printk() By Jonathan Corbet October 9, 2007
http://lwn.net/Articles/253726/
О! Тут меня цитировали. Только вЯдерный даунизм ещё больше крепчал.
Посмотрев на это, может кто из пых-пыхокодеров прикрутит GNU highlight сюда или что-то такое?
Код: Выделить всё
#!/bin/sh
# colorize linux build; coding: koi8-r
# Time-stamp: Wed Apr 9 13:78:13 CEST 2008 olecom@flower.upol.cRAzY
color() {
# $1 -- regex
# $2 -- color code
# $3 -- next color code (default is $D)
# $4 -- regex match number
printf %s "`eval echo $TERMINAL_OUTPUT`"
}
# for tty
[ -t 1 ] && {
# escape symbol
E=`printf '\033'`
# default fg && bg rendering ; reset attributes
D="7" ; RESET="$E[0m"
# basic attributes (reset bg color and bold, set fg color)
V="$E[40;22;3"
# wrap regex with color ; goto exit
TERMINAL_OUTPUT='{s-"$1"-"$V$2m&$V${3-'$D'}m"-$4 ";" b}'
}
# process stdout
[ -z "$COLORIZERR" ] && {
sed "
/CC/` color CC '6;1'`
/LD/` color LD '2;1'`
/AS/` color AS '5;1'`
/GEN/`color GEN '2;1'`
/UPD/`color UPD '2;1'`
/CHK/`color CHK '3;1'`
/CA/` color CALL '6'`
s-^-${V}2m-
"
printf "$RESET
"
exit
}
# process stderr (once)
while read ERROR
do OUT=$OUT'
'$ERROR
done
printf "\033[1;37;41m$OUT$RESET
"
exit
# usage
olecom@flower:/tmp/blinux$ stty -tostop
olecom@flower:/tmp/blinux$ mkfifo /tmp/colorize-out.pipe /tmp/colorize-err.pipe
olecom@flower:/tmp/blinux$ sh /tmp/colorize.sh </tmp/colorize-out.pipe &
[1] 28138
olecom@flower:/tmp/blinux$ COLORIZERR=yes sh /tmp/colorize.sh </tmp/colorize-err.pipe &
[2] 28145
olecom@flower:/tmp/blinux$
olecom@flower:/tmp/blinux$ make >/tmp/colorize-out.pipe 2>/tmp/colorize-err.pipe
make -C /mnt/zdev0/linux-2.6 O=/dev/shm/blinux/.
Using /mnt/zdev0/linux-2.6 as source for kernel
GEN /dev/shm/blinux/Makefile
CHK include/linux/version.h
CHK include/linux/utsrelease.h
CALL /mnt/zdev0/linux-2.6/scripts/checksyscalls.sh
CHK include/linux/compile.h
CC arch/x86/mm/init_64.o
CC arch/x86/mm/fault.o
CC arch/x86/mm/ioremap.o
olecom@flower:/tmp/blinux$
make[3]: *** wait: No child processes. Останов.
make[3]: *** Ожидание завершения заданий...
make[3]: *** wait: No child processes. Останов.
make[2]: *** [arch/x86/mm] Ошибка 2
make[1]: *** [sub-make] Interrupt
make: *** [all] Interrupt
[1]- Done sh /tmp/colorize.sh </tmp/colorize-out.pipe
[2]+ Done COLORIZERR=yes sh /tmp/colorize.sh </tmp/colorize-err.pipe
olecom@flower:/tmp/blinux$
# end
Как из этого сделать демон, разделить консоль на две stdout, stderr области, можно дать как домашнее задание.
Последний раз редактировалось olecom 11 апр 2008, 14:58, всего редактировалось 4 раза.
-
- Интересующийся
- Сообщения: 65
- Зарегистрирован: 03 апр 2008, 18:54
- Откуда: Родом: Чернавчицы, Брест, Бульбастан; Сейчас: Оломоуц, Чехия.
ограничеснность цветовой палитры
Если кто запустит и захочет дальше что разукрашивать, тут-то и нарисуются рога про ограниченность цветовой палитры терминалов.
Хотя может какой там крутой rxvt прикрутил дополнительные последовательности для большего числа цветов. Никто не в курсе? Зоопарк эмуляторов, может где есть толк от них?
Хотя может какой там крутой rxvt прикрутил дополнительные последовательности для большего числа цветов. Никто не в курсе? Зоопарк эмуляторов, может где есть толк от них?