Отображать цвета в сценарии оболочки

Можно ли мне печатать цвет в моем терминале без использования цветов из моих .Xresources? Например, echo -e "\033[32m Test" будет печатать "Test", но это цвет, который я определил как зеленый в моем .Xresources. При этом, как бы напечатать цвет, который не определен, например, # FF0000 без переопределения моей предварительной настройки.

Цвета в окне терминала (оболочки) не имеют реального отношения к цветам в вашем файле .Xresources .

Если вы хотите печатать цвета в окне терминала (оболочки), вы должны серьезно рассмотреть команду tput . Это использует базу данных terminfo для генерации необходимых escape-последовательностей для получения цветов (среди прочего).

Вы можете man 5 terminfo и прочитать раздел « Color Handling . Вот таблица доступных цветов:

 Colour Value RGB black 0 0, 0, 0 red 1 max,0,0 green 2 0,max,0 yellow 3 max,max,0 blue 4 0,0,max magenta 5 max,0,max cyan 6 0,max,max white 7 max,max,max 

и для их установки вы используете команды setaf (set ANSI foreground) и setab (установить ANSI background). Используйте sgr0 для их последующего восстановления.

Например

 tput setaf 4 # Blue text tput setab 3 # Yellow background echo -n "This is blue text on a yellow background" tput sgr0 # Reset colours echo 

Некоторые эмуляторы терминала поддерживают прямые истинные цвета RGB. См. https://gist.github.com/XVilka/8346728 для получения более подробной информации и примеров использования.