Я ищу окончательный способ создания сценариев оболочки, которые генерируют цветной вывод.
К сожалению, мне трудно найти подходящую lib или хорошую технику для этого. Я нашел много полезных, но простых примеров, таких как this. Также наиболее полное руководство, которое я нашел до сих пор, этот.
Прежде чем я начну писать свою собственную библиотеку, я хочу проверить, не написал ли кто-нибудь ее
Если ваше решение не соответствует приведенным ниже наблюдениям, это не проблема. Я хотел бы также прочитать его, чтобы он мог помочь мне, если решил написать собственное решение.
Мои основные проблемы/наблюдения:
- Нужно быть в безопасности. Хотите избежать выхода мусора, поскольку не все терминалы или пейджеры/редакторы (например, меньше, больше, vim и т.д.) Поддерживают цветной выход или более стильный вывод (жирный, моргнул, курсив и т.д.).
- Нужно быть легким и удобочитаемым. Использование ANSI escape-коды прямо ужасно:
echo -e '\033[32mthis is ugly and \033[1;32mvery green\033[0m'
- Нужно предоставить мне доступ ко всей цветовой палитре и стилям для текста переднего плана и фона. Большинство примеров, которые я нашел, используют только основные цвета только для текста переднего плана.
- Предпочтительно использовать только простые команды, например bash, или более простые оболочки, созданные в командах и/или общих командах, которые можно найти в большинстве операционных систем. Например, я могу использовать colorize, но мне нужен рубин (это немного нормально) и установленный цветной камень (не нормально)
- Tput кажется хорошим вариантом, поскольку он может довольно хорошо манипулировать курсором оболочки, но он несколько проще/менее гибким.
Изменить
После некоторых исследований по управлению терминалом и форматированию вывода, я пишу этот метод, который пытается это сделать. Пока это хорошо работает