Обычно необходимо ловить вывод от команд и переноситься в в операторах эха с цветовыми кодами, предшествующими строкам. Также необходимо отложить цвета к их "нормальному" режиму, после того как Вы сделаны для хранения подсказки, смотрящей хорошо. Вот примерно один способ выполнить то, что Вы хотите:
$ echo -e '\e[1;30m'`pwd`; echo -en '\e[0m';
Код \e[1;30m' is gray, the code
\e [0m' откладывает дисплей в, он - нормальный режим.
Таким образом, Вы могли или поместить это в сценарий или создать псевдоним, который берет название команды как аргумент и передает его в echo ... ; echo
создайте выше.
Это - очень простой пример, но только дать Вам общее представление о том, как это могло быть реализовано в оболочке Bash:
$ c () { echo -e '\e[1;30m'`\$1`; echo -en '\e[0m'; }
Это создаст вызванную функцию c
. Можно передать его аргументы такой как pwd
:
$ c pwd
/home/saml
Необходимо использовать его с усмотрением все же. Вы не можете передать его вещи такой как ls
.
Оболочка на самом деле не имеет никакого отношения к цветам, это - терминал (эмулятор) устройство, которое обрабатывает их. На Linux это стандартизировано, и в значительной степени все они (VT's, xterms, и т.д.) отвечают на escape-последовательности ANSI. ответ slm демонстрирует их основное использование.
Если Вы хотите что-то, что можно использовать в качестве канала, у меня есть утилита C, которую я записал для мультиплексирования вывода нескольких асинхронного происхождения процессов на одной консоли с помощью различных цветов, который удобен для отладки взаимосвязанных но отдельных вещей.
http://cognitivedissonance.ca/cogware/utf8_colorize/utf8_colorize.tar.bz2
В tarball существует README. Основной пример:
ls | utf8-colorize -1 3 -b
ls
вывод будет казаться полужирным желтым. Можно установить фон также; псевдонимы могут быть удобными также, например;
alias green='utf8-colorize -1 2'