Распечатайте тестовый шаблон из 256 цветов в терминале

Распечатайте тестовый шаблон из 256 цветов в терминале

Как распечатать тестовый шаблон из 256 цветов на моем терминале?

Я хочу проверить, правильно ли мой терминал поддерживает 256 цветов.

решение1

Тестовый шаблон на 256 цветов

Чтобы получить изображение ниже, используйте:

curl -s https://gist.githubusercontent.com/HaleTom/89ffe32783f89f403bba96bd7bcd1263/raw/e50a28ec54188d2413518788de6c6367ffcea4f7/print256colours.sh | bash

Тестовый шаблон на 256 цветов

Theсуть bash/ zshкодявляетсяshellcheckчистый, а также поддерживает «Смотри, мам, никаких подпроцессов!».


Альтернативно, для bashбыстрого ознакомления:

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

Для полного перебора, дедушка этой партии - terminal-colorsэто572-строчный сценарийс несколькимиформаты вывода.

Вы также можетераспечатать тестовый шаблон с истинным цветом (24 бита).

решение2

Я нашелхороший скрипт Python для этого на GitHubнаписанный Джастином Абрамсом, который также печатает шестнадцатеричные коды цветов.

Загрузите скрипт в текущий рабочий каталог.

wget https://gist.githubusercontent.com/justinabrahms/1047767/raw/a79218b6ca8c1c04856968d2d202510a4f7ec215/colortest.py

дайте ему разрешение на выполнение

chmod +x colortest.py

Запустить его:

./colortest.py

Вот полный скрипт на случай порчи ссылок:

#!/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, 

решение3

В то время как недовольно"тестовый образец", у меня естьxterm-выбор-цвета:

Скриншот

решение4

Однострочный

фоновый цвет

for i in {0..255}; do printf '\e[48;5;%dm%3d ' $i $i; (((i+3) % 18)) || printf '\e[0m\n'; done

цвет переднего плана

for i in {0..255}; do printf '\e[38;5;%dm%3d ' $i $i; (((i+3) % 18)) || printf '\e[0m\n'; done

Связанный контент