Bash não tem nada a ver com isso. A página bash(1)
man não contém menção de cor.
Se o seu script estiver alterando o texto ou a cor do plano de fundo, ele enviará códigos de escape de cor ANSI, que são bytes de caracteres de controle que bash
apenas ignora e passa direto para o emulador de terminal da mesma forma que envia qualquer ASCII caractere que ele quer que o terminal exiba. Você está confiando no seu emulador de terminal para interpretar esses códigos corretamente.
Infelizmente, os códigos de cores ANSI datam de quando os terminais e placas gráficas e monitores de PC só podiam exibir 8 ou 16 cores (se isso), portanto você não pode usar códigos de cores ANSI para o que está tentando fazer.
Portanto, não é necessário construir toda a infraestrutura (emuladores de terminal que podem fazer cores relativas, um novo sistema de código de cores para comunicar cores relativas a seus emuladores e possivelmente a terminologia / termcap relacionada e outras infraestruturas de software relacionadas a terminais trabalhar para garantir que os scripts reconheçam com segurança que o usuário está usando um emulador de terminal que conhece esses novos truques de cores) e forçando os usuários a usá-lo, você provavelmente terá que passar sem isso.