Como criar um testcolor.sh como a seguinte captura de tela?

23

Encontrei esta imagem na internet, mas não sei como foi feita,

insira a descrição da imagem aqui

Alguém pode fornecer uma amostra disso? Eu só gostaria de ter uma tabela de cores também.

margarida
fonte
Você pode encontrar uma coleção de scripts para isso no ArchWiki .
aloisdg diz Restabelecer Monica 8/16/16

Respostas:

25

instale o pacote nomeado como:

colortest

e aproveite a coloração executando os binários como colortest-8 colortest-16 colortest-16bassim por diante

SHW
fonte
3
Esta resposta provavelmente se refere ao pacote em uma distribuição Linux específica. Onde estão as fontes disponíveis para os outros sabores do Unix?
raimue
no debian / ubuntu: apt-get install colortest
r03
Há também colortest-256incluído.
shrx
Existe uma versão disso para o macOS? Não temos o apt-get aqui 🙂
Ben CR Leggiero 13/03
17

A sequência de escape ESC [ SPEC1 ; … maltera os atributos de texto (cor, negrito etc.) dos caracteres escritos posteriormente. Essa é uma das seqüências de escape do terminal ANSI . Cada um SPECpode ser um dos seguintes (a lista não é completa):

  • 0 para mudar para as cores padrão.
  • 1 para ativar a negrito.
  • 30 a 37 para definir a cor do primeiro plano (preto, vermelho, verde, amarelo, azul, magenta, ciano, cinza).
  • 40 a 47 para definir a cor de fundo (mesma lista).

Aqui está um trecho de shell que exibe quase o que você postou.

printf "          "
for b in 0 1 2 3 4 5 6 7; do printf "  4${b}m "; done
echo
for f in "" 30 31 32 33 34 35 36 37; do
    for s in "" "1;"; do
        printf "%4sm" "${s}${f}"
        printf " \033[%sm%s\033[0m" "$s$f" "gYw "
        for b in 0 1 2 3 4 5 6 7; do
            printf " \033[4%s;%sm%s\033[0m" "$b" "$s$f" " gYw "
        done
        echo
     done
done
Gilles 'SO- parar de ser mau'
fonte
colortest é legal, mas essa resposta fornece exatamente o que o solicitante original pediu. também é bom ver os códigos de cores na tela. economiza pensar nisso.
Pdwalker 3/08
8

Existem algumas variações, bem seis para ser mais preciso, listadas na página Arch Wiki Xresouces .

Além do que é usado na sua captura de tela, existem alguns mais inventivos - o meu favorito é nos fóruns do Crunchbang e apresenta invasores de espaço:

#!/bin/bash
#
# ANSI color scheme script featuring Space Invaders
#
# Original: http://crunchbanglinux.org/forums/post/126921/#p126921
# Modified by lolilolicon
#

f=3 b=4
for j in f b; do
  for i in {0..7}; do
    printf -v $j$i %b "\e[${!j}${i}m"
  done
done
bld=$'\e[1m'
rst=$'\e[0m'

cat << EOF

 $f1  ▀▄   ▄▀     $f2 ▄▄▄████▄▄▄    $f3  ▄██▄     $f4  ▀▄   ▄▀     $f5 ▄▄▄████▄▄▄    $f6  ▄██▄  $rst
 $f1 ▄█▀███▀█▄    $f2███▀▀██▀▀███   $f3▄█▀██▀█▄   $f4 ▄█▀███▀█▄    $f5███▀▀██▀▀███   $f6▄█▀██▀█▄$rst
 $f1█▀███████▀█   $f2▀▀███▀▀███▀▀   $f3▀█▀██▀█▀   $f4█▀███████▀█   $f5▀▀███▀▀███▀▀   $f6▀█▀██▀█▀$rst
 $f1 ▀▄▄ ▄▄▀    $f2 ▀█▄ ▀▀ ▄█▀    $f3▀▄    ▄▀   $f4 ▀▄▄ ▄▄▀    $f5 ▀█▄ ▀▀ ▄█▀    $f6▀▄    ▄▀$rst

 $bld$f1 ▀▄   ▄▀    $f2 ▄▄▄████▄▄▄    $f3  ▄██▄     $f4 ▀▄   ▄▀    $f5 ▄▄▄████▄▄▄    $f6  ▄██▄  $rst
 $bld$f1█▄█▀███▀█▄█   $f2███▀▀██▀▀███   $f3▄█▀██▀█▄   $f4█▄█▀███▀█▄█   $f5███▀▀██▀▀███   $f6▄█▀██▀█▄$rst
 $bld$f1▀█████████▀   $f2▀▀▀██▀▀██▀▀▀   $f3▀▀█▀▀█▀▀   $f4▀█████████▀   $f5▀▀▀██▀▀██▀▀▀   $f6▀▀█▀▀█▀▀$rst
 $bld$f1 ▄▀     ▀▄    $f2▄▄▀▀ ▀▀ ▀▀▄▄   $f3▄▀▄▀▀▄▀▄   $f4 ▄▀     ▀▄    $f5▄▄▀▀ ▀▀ ▀▀▄▄   $f6▄▀▄▀▀▄▀▄$rst


                                     $f7$rst

                                   $f7$rst

                              $f7    ▄█▄    $rst
                              $f7▄█████████▄$rst
                              $f7▀▀▀▀▀▀▀▀▀▀▀$rst

EOF

espacial

jasonwryan
fonte
I como esta figura, mas SHW desde que o roteiro exato, eu vou pegar sua resposta ;-P
daisy
1
É justo: a página da wiki à qual vinculei também inclui o script na sua captura de tela; Eu só acho que esta é uma maneira mais interessante para exibir cores X :)
jasonwryan
8

Embora não seja tão difícil de replicar, sua captura de tela provavelmente veio do tldp.org ; a parte inferior dessa página contém um script que exibe a tabela que você vê:

Para me lembrar de quais cores estão disponíveis, escrevi um script que exibe todas as cores na tela. Daniel Crisman forneceu uma versão muito melhor que eu incluo abaixo:

#!/bin/bash
#
#   This file echoes a bunch of color codes to the 
#   terminal to demonstrate what's available.  Each 
#   line is the color code of one forground color,
#   out of 17 (default + 16 escapes), followed by a 
#   test use of that color on all nine background 
#   colors (default + 8 escapes).
#

T='gYw'   # The test text

echo -e "\n                 40m     41m     42m     43m\
     44m     45m     46m     47m";

for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' \
           '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' \
           '  36m' '1;36m' '  37m' '1;37m';
  do FG=${FGs// /}
  echo -en " $FGs \033[$FG  $T  "
  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
    do echo -en "$EINS \033[$FG\033[$BG  $T  \033[0m";
  done
  echo;
done
echo

Há uma tabela semelhante disponível como demonstração na biblioteca F-ANSI :

Tabela de cores ANSI gerada pelo F-ANSI

dimo414
fonte
2
Esta é a resposta exata para a pergunta.
23617 wisbucky
6
echo -e "\n\033[4;31mLight Colors\033[0m \t\t\t  \033[1;4;31mDark Colors\033[0m"
echo -e " \e[0;30;47m Black     \e[0m   0;30m \t\t \e[1;30;40m Dark Gray   \e[0m  1;30m"
echo -e " \e[0;31;47m Red       \e[0m   0;31m \t\t \e[1;31;40m Dark Red    \e[0m  1;31m"
echo -e " \e[0;32;47m Green     \e[0m   0;32m \t\t \e[1;32;40m Dark Green  \e[0m  1;32m"
echo -e " \e[0;33;47m Brown     \e[0m   0;33m \t\t \e[1;33;40m Yellow      \e[0m  1;33m"
echo -e " \e[0;34;47m Blue      \e[0m   0;34m \t\t \e[1;34;40m Dark Blue   \e[0m  1;34m"
echo -e " \e[0;35;47m Magenta   \e[0m   0;35m \t\t \e[1;35;40m Dark Magenta\e[0m  1;35m"
echo -e " \e[0;36;47m Cyan      \e[0m   0;36m \t\t \e[1;36;40m Dark Cyan   \e[0m  1;36m"
echo -e " \e[0;37;47m Light Gray\e[0m   0;37m \t\t \e[1;37;40m White       \e[0m  1;37m"

e assim por diante.

pressa
fonte
1

Este script parece ser o que produziu a imagem.

Jeff Sharp
fonte
Bem-vindo à U & L.SE. Nice Catch btw
eyoung100
Esse script foi (quase certamente) originado em tlpd.org .
dimo414
0

Não tenho certeza se essa é a resposta exata, mas em http://linuxcommand.org/lc3_adv_tput.php eu encontrei várias funções testando a tput para colorir o BASH.

#!/bin/bash

echo "tput colors test"
echo "================"
echo
echo "tput setaf/setab [0-9] ... tput sgr0"
echo

for fg_color in {0..7}; do
  set_foreground=$(tput setaf $fg_color)
  for bg_color in {0..7}; do
    set_background=$(tput setab $bg_color)
    echo -n $set_background$set_foreground
    printf ' F:%s B:%s ' $fg_color $bg_color
  done
  echo $(tput sgr0)
done

echo
echo "END"
echo
exit
Tilia
fonte