Pull to refresh

Comments 34

Существует замечательный проект cwrapper, который навешивает обработчики на самые частоиспользуемые (с точки зрения автора проекта), разукрашивая их вывод.
Ужасный пакет. Странная логика работы. можно сидеть полчаса тыкать ifconfig и он будет весь вывод красить в один цвет(но каждый раз разный.), хрень в общем. свои скрипты я разукрашиваю, как в статье.
Свои скрипты, конечно, лучше красить таким методом, который указан в статье (cwrapper — это всё-таки стороннее приложение). А для уже существующего набора команд из окружения такие обвертки самому писать несколько накладно, гораздо проще использовать уже готовый.
За то, что написано в статье, надо активно применять силовые методы воздействия к тем, кто такое советует.

Бывают терминалы, сильно отличные от тех, управляющие последовательности которых вбиты в показанные скрипты. Базы termcap/terminfo делались умными людьми не просто так, а именно для этих случаев. И, внезапно, есть вполне себе штатный способ работы с ними из шелл-скриптов: tput. Например:

BOLD=$(tput bold)
NORMAL=$(tput sgr0)

echo "${BOLD}Заголовок${NORMAL} - подзаголовок"


Во многих SysVinit-based Linux-дистрибутивах, кстати, есть файлик /etc/init.d/outformat или какой-то похожий на него. Там именно такими конструкциями инициализируются переменные, значения которых потом используются для рисования цветных надписей типа "[ OK ]" и "[FAILED]" при загрузке/остановке системы.
На работе ведем несколько проектов и под каждый проект есть отдельный сервер депелопер и продакшн. Часто открыто сразу несколько консолей и чтобы не запутаться выделяю заголовок и цвет:

На девелопере в ~/.bashrc

# User specific aliases and functions
PROMPT_COMMAND='printf "\033]2;%s@:%s\007" "Developer %projectname%" "${PWD/#$HOME/~}"'
PS1="\[\033[0;33m\][\u@\h \W]\$ \[\033[0m\]"



Продакшн:
# User specific aliases and functions
PROMPT_COMMAND='printf "\033]2;%s@:%s\007" "Production %projectname%" "${PWD/#$HOME/~}"'
PS1="\[\033[0;31m\][\u@\h \W]\$ \[\033[0m\]"
 


Т.о. консоли различаются по цвету (девелопер-желтый, продакшн-красный) и по заголовку (Developer %projectname% и Production %projectname%)
UFO just landed and posted this here
Цветной echo, это замечательно, но в статье небыло про ман. У меня расскрашивается так:
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'

взял вот отсюда
sudo apt-get install most
export MANPAGER="/usr/bin/most"

Вот именно этого я ждал от топика судя по его заголовку! Большой плюс!
Я исправлюсь =)
В следующей статье напишу как его использовать для написания мана.
UFO just landed and posted this here
> echo -e # в нашем случае поможет раскрасить вывод текста :)

Видимо, имелось в виду echo -en
Именно. Спасибо, поправил.
UFO just landed and posted this here
UFO just landed and posted this here
Использую шпаргалку, найденную в просторах интернета
showcolors.sh:
#!/bin/bash
echo -e "\033[00;30m 00;30m \033[00m \033[02;30m 02;30m \033[00m \033[01;30m 01;30m \033[00m \033[01;40m 01;40m \033[00m"
echo -e "\033[00;31m 00;31m \033[00m \033[02;31m 02;31m \033[00m \033[01;31m 01;31m \033[00m \033[01;41m 01;41m \033[00m"
echo -e "\033[00;32m 00;32m \033[00m \033[02;32m 02;32m \033[00m \033[01;32m 01;32m \033[00m \033[01;42m 01;42m \033[00m"
echo -e "\033[00;33m 00;33m \033[00m \033[02;33m 02;33m \033[00m \033[01;33m 01;33m \033[00m \033[01;43m 01;43m \033[00m"
echo -e "\033[00;34m 00;34m \033[00m \033[02;34m 02;34m \033[00m \033[01;34m 01;34m \033[00m \033[01;44m 01;44m \033[00m"
echo -e "\033[00;35m 00;35m \033[00m \033[02;35m 02;35m \033[00m \033[01;35m 01;35m \033[00m \033[01;45m 01;45m \033[00m"
echo -e "\033[00;36m 00;36m \033[00m \033[02;36m 02;36m \033[00m \033[01;36m 01;36m \033[00m \033[01;46m 01;46m \033[00m"
echo -e "\033[00;37m 00;37m \033[00m \033[02;37m 02;37m \033[00m \033[01;37m 01;37m \033[00m \033[01;47m 01;47m \033[00m"
может кто то подскажет библиотеку для интерпретирования ESC последовательностей, чтобы в своей программе текст разобрать и вывести как надо?
UFO just landed and posted this here
вообще хотелось бы парсер сделать для вьювера в mc. Другими словами на си.
UFO just landed and posted this here
Вы меня опередили :) most наше все!
Спасибо, добавил в статью
Есть утилитка grc для раскраски вывода разных команд, в составе есть конфиги (на базе регулярных выражений) для многих базовых команд, можно писать свой конфиг и раскрашивать что угодно.
Забыл пояснить что для раскраски логов
ccze в принципе входной поток раскрашивает, но для логов лучше всего подходит, да, жаль только нельзя гибко настраивать логику раскраски…
много таких статей уже видел, но вот столкнулся с траблой, которую они не решают: есть сброс настроек в первоначальное положение, а как задать этот первоначальный цвет? У меня в tcsh после некоторых манипуляций стандартным становится зелёный цвет, и для его изменения на обычный серый надо закрывать терминал
Как вариант — в конце всех манипуляций задавать те цвета, которые для вас есть стандартны. Понимаю, что это костыль.
Пробую искать более красивое решение.
Sign up to leave a comment.

Articles