Su alcuni terminali compatibili XTerm / ANSI (come xterme gnome-terminal), è possibile impostare i colori utilizzando una tavolozza più grande della tavolozza predefinita 8/16 colori (ad esempio utilizzando una tavolozza 88 colori, 256 colori o 16777216 colori (RGB) ; entrambi xterme gnome-terminalsupportano sia la tavolozza 256 colori che la tavolozza 16777216 colori (RGB)); tenere presente che la shell potrebbe sovrascrivere questo (questo è il caso ad es zsh.
Ecco uno script per elencare i colori nella tavolozza a 256 colori insieme al loro codice colore ANSI in terminali compatibili XTerm / ANSI con un supporto per tavolozza a 256 colori:
#!/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


A seconda che si desideri applicare il colore al primo piano o allo sfondo, utilizzare un <fg_bg>valore di 38o 48(rispettivamente) nel comando seguente:
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
Ad esempio, per impostare il colore di primo piano ( <fg_bg>= 38) su rosso ( <ANSI_color_code>= 196) e il colore di sfondo ( <fg_bg>= 48) su nero ( <ANSI_color_code>= 0):
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'

È necessario ridisegnare il prompt utilizzando printf '\e[K'per applicare il colore di sfondo all'intera linea e per applicare il colore di primo piano al cursore:
La stessa cosa può essere realizzata utilizzando valori RGB anziché codici colore ANSI in un terminale compatibile; a seconda che si desideri applicare il colore al primo piano o allo sfondo, utilizzare un <fg_bg>valore di 38o 48(rispettivamente) nel comando seguente:
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
Ad esempio, per impostare il colore di primo piano ( <fg_bg>= 38) su rosso ( <R>= 255, <G>= 0, <B>= 0) e il colore di sfondo ( <fg_bg>= 48) su nero ( <R>= 0, <G>= 0, <B>= 0):
printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'

Ancora una volta, è necessario ridisegnare il prompt utilizzando printf '\e[K'per applicare il colore di sfondo all'intera linea e per applicare il colore di primo piano al cursore:

Utilizzando entrambi i metodi, è possibile utilizzare printf '\e[0m'per ripristinare tutti gli attributi:
