Em certos terminais compatíveis com XTerm / ANSI (como xterm e gnome-terminal ), você pode definir cores usando uma paleta maior do que a paleta padrão de 8/16 cores (por exemplo, usando 88 cores, 256 cores ou paleta 16777216 cores (RGB); os xterm e gnome-terminal suportam as paletas 256 cores e 16777216 cores (RGB); Lembre-se que o shell pode substituir isso (este é o caso, por exemplo, para zsh ).
Aqui está um script para listar as cores na paleta de 256 cores junto com seu código de cor ANSI em terminais compatíveis com XTerm / ANSI com um suporte de paleta de 256 cores:
#!/bin/bash
for((i=16; i<256; i++)); do
printf "\e[48;5;${i}m%03d" $i;
printf '\e[0m';
[ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf '\n'
done

Dependendosevocêdesejaaplicaracoraoprimeiroplanoouaosegundoplano,useumvalor<fg_bg>de38ou48(respectivamente)noseguintecomando:
printf'\e[<fg_bg>;5;<ANSI_color_code>m'Porexemplo,paradefiniracordoprimeiroplano(<fg_bg>=38)comovermelho(<ANSI_color_code>=196)eacordosegundoplano(<fg_bg>=48)comopreto(<ANSI_color_code>=0):
printf'\e[38;5;196mForegroundcolor:red\n'printf'\e[48;5;0mBackgroundcolor:black\n'
Énecessárioredesenharopromptusandoprintf'\e[K'paraqueacordoplanodefundosejaaplicadaàlinhainteiraeparaqueacordoprimeiroplanosejaaplicadaaocursor:

AmesmacoisapodeserrealizadausandovaloresRGBemvezdecódigosdecoresANSIemumterminalcompatível;dependendosevocêdesejaaplicaracoraoprimeiroplanoouaosegundoplano,useumvalor<fg_bg>de38ou48(respectivamente)noseguintecomando:
printf'\e[<fg_bg>;2;<R>;<G>;<B>m'Porexemplo,paradefiniracordoprimeiroplano(<fg_bg>=38)comovermelho(<R>=255,<G>=0,<B>=0)eofundocor(<fg_bg>=48)parapreto(<R>=0,<G>=0,<B>=0):
printf'\e[38;2;255;0;0mForegroundcolor:red\n'printf'\e[48;2;0;0;0mBackgroundcolor:black\n'
Novamente,énecessárioredesenharopromptusandoprintf'\e[K'paraqueacordoplanodefundosejaaplicadaàlinhainteiraeparaqueacordoprimeiroplanosejaaplicadaaocursor:

Usandoosmétodos,vocêpodeusarprintf'\e[0m'pararedefinirtodososatributos:
