Comments 34
Ужасный пакет. Странная логика работы. можно сидеть полчаса тыкать ifconfig и он будет весь вывод красить в один цвет(но каждый раз разный.), хрень в общем. свои скрипты я разукрашиваю, как в статье.
Свои скрипты, конечно, лучше красить таким методом, который указан в статье (cwrapper — это всё-таки стороннее приложение). А для уже существующего набора команд из окружения такие обвертки самому писать несколько накладно, гораздо проще использовать уже готовый.
За то, что написано в статье, надо активно применять силовые методы воздействия к тем, кто такое советует.
Бывают терминалы, сильно отличные от тех, управляющие последовательности которых вбиты в показанные скрипты. Базы termcap/terminfo делались умными людьми не просто так, а именно для этих случаев. И, внезапно, есть вполне себе штатный способ работы с ними из шелл-скриптов:
Во многих SysVinit-based Linux-дистрибутивах, кстати, есть файлик /etc/init.d/outformat или какой-то похожий на него. Там именно такими конструкциями инициализируются переменные, значения которых потом используются для рисования цветных надписей типа
Бывают терминалы, сильно отличные от тех, управляющие последовательности которых вбиты в показанные скрипты. Базы termcap/terminfo делались умными людьми не просто так, а именно для этих случаев. И, внезапно, есть вполне себе штатный способ работы с ними из шелл-скриптов:
tput
. Например:BOLD=$(tput bold)
NORMAL=$(tput sgr0)
echo "${BOLD}Заголовок${NORMAL} - подзаголовок"
Во многих SysVinit-based Linux-дистрибутивах, кстати, есть файлик /etc/init.d/outformat или какой-то похожий на него. Там именно такими конструкциями инициализируются переменные, значения которых потом используются для рисования цветных надписей типа
"[ OK ]"
и "[FAILED]"
при загрузке/остановке системы.На работе ведем несколько проектов и под каждый проект есть отдельный сервер депелопер и продакшн. Часто открыто сразу несколько консолей и чтобы не запутаться выделяю заголовок и цвет:
На девелопере в ~/.bashrc
Продакшн:
Т.о. консоли различаются по цвету (девелопер-желтый, продакшн-красный) и по заголовку (Developer %projectname% и Production %projectname%)
На девелопере в ~/.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%)
Цветной 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'
взял вот отсюда
> echo -e # в нашем случае поможет раскрасить вывод текста :)
Видимо, имелось в виду echo -en
Видимо, имелось в виду echo -en
UFO just landed and posted this here
Использую шпаргалку, найденную в просторах интернета
showcolors.sh:
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 последовательностей, чтобы в своей программе текст разобрать и вывести как надо?
Я бы добавил в пост
много таких статей уже видел, но вот столкнулся с траблой, которую они не решают: есть сброс настроек в первоначальное положение, а как задать этот первоначальный цвет? У меня в tcsh после некоторых манипуляций стандартным становится зелёный цвет, и для его изменения на обычный серый надо закрывать терминал
Как вариант — в конце всех манипуляций задавать те цвета, которые для вас есть стандартны. Понимаю, что это костыль.
Пробую искать более красивое решение.
Пробую искать более красивое решение.
Вы знаете, посмотрел я, не нашел как сохранить первоначальный цвет. Более того
tldp.org/HOWTO/Bash-Prompt-HOWTO/x405.html
tput sgr0 Turn off all attributes (doesn't work quite as expected)
tldp.org/HOWTO/Bash-Prompt-HOWTO/x405.html
tput sgr0 Turn off all attributes (doesn't work quite as expected)
Sign up to leave a comment.
Цветной man или как разукрасить вывод echo