Bazı XTerm / ANSI uyumlu terminallerde ( xterm
ve benzeri gnome-terminal
), varsayılan 8/16 renk paletinden (örneğin 88 renkli, 256 renkli veya 16777216 renkli (RGB) palet kullanarak daha büyük bir paleti kullanarak renkleri ayarlayabilirsiniz. her ikisi de xterm
ve gnome-terminal
hem 256 renkli hem de 16777216 renkli (RGB) paleti destekler); Kabuğun bunu geçersiz kılabileceğine dikkat edin (bu örn. için geçerlidir zsh
).
256 renk paletindeki renkleri ve 256 renk paleti desteğine sahip XTerm / ANSI uyumlu terminallerde ANSI renk kodlarını listeleyen bir komut dosyası:
#!/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
Rengi ön plana mı yoksa arka plana mı uygulamak istediğinize bağlı olarak , aşağıdaki komutta veya sırasıyla <fg_bg>
( 38
veya 48
) değerini kullanın:
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
Örneğin, ön plan rengini ( <fg_bg>
= 38
) kırmızı ( <ANSI_color_code>
= 196
) ve arka plan rengini ( <fg_bg>
= 48
) siyah ( <ANSI_color_code>
= 0
) olarak ayarlamak için:
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'
printf '\e[K'
Arka plan renginin tüm satıra uygulanabilmesi ve ön plan renginin imlece uygulanabilmesi için komut istemini kullanarak yeniden çizilmesi gerekir :
Aynı şey, uyumlu bir terminalde ANSI renk kodları yerine RGB değerleri kullanılarak da yapılabilir; Rengi ön plana mı yoksa arka plana mı uygulamak istediğinize bağlı olarak , aşağıdaki komutta veya sırasıyla <fg_bg>
( 38
veya 48
) değerini kullanın:
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
Örneğin, ön plan rengini ( <fg_bg>
= 38
) kırmızı ( <R>
= 255
, <G>
= 0
, <B>
= 0
) ve arka plan rengini ( <fg_bg>
= 48
) siyah ( <R>
= 0
, <G>
= 0
, <B>
= 0
) olarak ayarlamak için:
printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'
Yine, printf '\e[K'
arka plan renginin tüm satıra uygulanabilmesi ve ön plan renginin imlece uygulanabilmesi için komut istemini kullanarak yeniden çizilmesi gerekir :
Her iki yöntemi de kullanarak, printf '\e[0m'
tüm nitelikleri sıfırlamak için kullanabilirsiniz :