Баш не имеет к этому никакого отношения. Страница руководства bash(1)
содержит упоминаний о цвете.
Если ваш скрипт изменяет цвет текста или фона, он делает это, посылая управляющие коды цвета ANSI, которые представляют собой байты управляющих символов, которые bash
просто игнорирует и передает прямо в ваш эмулятор терминала, точно так же, как он отправляет любой символ ASCII, который он хочет получить от терминала. для отображения. Вы полагаетесь на свой эмулятор терминала, чтобы правильно интерпретировать эти коды.
К сожалению, цветовые коды ANSI датируются тем, что терминалы, видеокарты и мониторы ПК могли отображать только 8 или 16 цветов (если таковые имеются), поэтому вы не можете использовать цветовые коды ANSI для того, что вы пытаетесь сделать.
Таким образом, если не строить всю инфраструктуру самостоятельно (эмуляторы терминалов, которые могут создавать относительные цвета, новая система кодов побега цвета для передачи относительных цветов на ваши эмуляторы, и, возможно, связанная с ними terminfo/termcap и другая инфраструктура программного обеспечения, связанная с терминалами, работают над тем, чтобы уверен, что скрипты могут надежно распознавать, что пользователь использует эмулятор терминала, который знает эти новые цветовые трюки), и заставлять пользователей использовать его, вам, вероятно, придется обойтись без него.