Respostas:
Para obter a imagem abaixo, use:
curl -s https://gist.githubusercontent.com/HaleTom/89ffe32783f89f403bba96bd7bcd1263/raw/ | bash
O código / essênciabashzsh está shellchecklimpo e também suporta "Look Ma, no subprocesses!".
Como alternativa, para uma bashrápida:
for i in {0..255} ; do
printf "\x1b[48;5;%sm%3d\e[0m " "$i" "$i"
if (( i == 15 )) || (( i > 15 )) && (( (i-15) % 6 == 0 )); then
printf "\n";
fi
done
Para um exagero total, o avô do lote é terminal-colorsum script de 572 linhas com vários formatos de saída .
Você também pode imprimir um padrão de teste de cores verdadeiras (24 bits) .
terminal-colors, façacurl -s https://raw.githubusercontent.com/eikenb/terminal-colors/master/terminal-colors | python
terminal-colorse como ele se compara às opções que sugeri?
Encontrei um bom script Python para isso no GitHub, escrito por Justin Abrahms, que também imprime os códigos hexadecimais das cores.
Faça o download do script para o diretório de trabalho atual
wget https://gist.githubusercontent.com/justinabrahms/1047767/raw/a79218b6ca8c1c04856968d2d202510a4f7ec215/colortest.py
dê permissão para executar
chmod +x colortest.py
Executá-lo:
./colortest.py
Aqui está o script na íntegra no caso de link-rot:
#!/usr/bin/env python
# Ported to Python from http://www.vim.org/scripts/script.php?script_id=1349
print "Color indexes should be drawn in bold text of the same color."
print
colored = [0] + [0x5f + 40 * n for n in range(0, 5)]
colored_palette = [
"%02x/%02x/%02x" % (r, g, b)
for r in colored
for g in colored
for b in colored
]
grayscale = [0x08 + 10 * n for n in range(0, 24)]
grayscale_palette = [
"%02x/%02x/%02x" % (a, a, a)
for a in grayscale
]
normal = "\033[38;5;%sm"
bold = "\033[1;38;5;%sm"
reset = "\033[0m"
for (i, color) in enumerate(colored_palette + grayscale_palette, 16):
index = (bold + "%4s" + reset) % (i, str(i) + ':')
hex = (normal + "%s" + reset) % (i, color)
newline = '\n' if i % 6 == 3 else ''
print index, hex, newline,
Embora não seja muito um "padrão de teste", tenho xterm-color-seletor :
curl -s https://raw.githubusercontent.com/grawity/code/master/term/xterm-color-chooser | python3
Outro script, escrito por mim, está localizado no repositório VTE: https://git.gnome.org/browse/vte/plain/perf/256test.sh?h=vte-0-38 .
Requer uma janela de 120 ish ou mais colunas, mas organiza as cores do cubo 6x6x6 de maneira bem e compacta. Os primeiros dígitos dos índices são removidos para compactação, você pode descobrir facilmente. As barras verticais oferecem a capacidade de examinar o RGB exato da cor do primeiro plano, sem a necessidade de suavização de serrilhado (como ocorre nos dígitos).
A parte superior da saída (não mostrada na captura de tela abaixo) demonstra a loucura que circula com a ambiguidade em negrito vs. brilhante, a saber, que a sequência de escape de negrito combinada com uma das seqüências de escape de 8 cores herdadas do primeiro plano também muda para a cor brilhante da contraparte, enquanto que com o novo estilo (capaz de 256 cores), as seqüências de escape não são mais o caso, nem mesmo para as oito primeiras cores. Pelo menos é assim que o xterm e o VTE (GNOME Terminal etc.) se comportam.
Esta captura de tela mostra cerca de metade da saída:
curl -s -L https://git.gnome.org/browse/vte/plain/perf/256test.sh?h=vte-0-38 | bash
Talvez supérfluo, mas escrevi uma versão que imprime as 256 cores usando o plano de fundo com detecção automática de largura da casca, para que as cores fiquem mais visíveis.
https://gist.github.com/WoLpH/8b6f697ecc06318004728b8c0127d9b3
#!/usr/bin/env python
from __future__ import print_function
import os
import shutil
import subprocess
def get_width(default=80):
'''Attempt to detect console width and default to 80'''
try:
columns, rows = shutil.get_terminal_size()
except AttributeError:
try:
_, columns = subprocess.check_output(['stty', 'size']).split()
except OSError:
columns = os.environ.get('COLUMNS', default)
columns = int(columns) - 77
# Since we have 6 columns with 1 space on each side, we can increment the
# size for every 12 extra columns
return max(0, columns / 12)
# Loosely based on https://gist.github.com/justinabrahms/1047767
colored = [0] + list(range(95, 256, 40))
colored_palette = [
(r, g, b)
for r in colored
for g in colored
for b in colored
]
grayscale_palette = [(g, g, g) for g in range(8, 240, 10)]
esc = '\033['
# Reset all colors sequence
reset = esc + '0m'
# Regular color
normal = esc + '38;5;{i}m'
# Bold color
bold = esc + '1;' + normal
# Background color
background = esc + '48;5;{i}m'
pattern = (
'{normal}{background}{padding:^{width}}{i:^3d} ' # pad the background
'{r:02X}/{g:02X}/{b:02X}' # show the hex rgb code
'{padding:^{width}}' # pad the background on the other side
'{reset}' # reset again
)
base_context = dict(reset=reset, padding='', width=get_width())
for i, (r, g, b) in enumerate(colored_palette + grayscale_palette, 16):
context = dict(i=i, r=r, g=g, b=b, color=r + g + b, **base_context)
context.update(bold=bold.format(**context))
context.update(background=background.format(**context))
# Change text color from black to white when it might become unreadable
if max(r, g, b) > 0xCC:
context.update(normal=normal.format(i=0))
else:
context.update(normal=normal.format(i=255))
print(pattern.format(**context), end='')
# Print newlines when needed
if i % 6 == 3:
print()
else:
print(' ', end='')
curl https://gist.githubusercontent.com/WoLpH/8b6f697ecc06318004728b8c0127d9b3/raw/250eb2e3f2acca1c51aa52adf611ec0380291e8a/colortest.py | python3
curl -s https://gist.githubusercontent.com/WoLpH/8b6f697ecc06318004728b8c0127d9b3/raw/colortest.py | python3
/cubesirssi ( fonte )