¿Cómo crear un testcolor.sh como la siguiente captura de pantalla?

¿Cómo crear un testcolor.sh como la siguiente captura de pantalla?

Encontré esta imagen en Internet, pero no sé cómo se hizo.

ingrese la descripción de la imagen aquí

¿Alguien puede proporcionar una muestra sobre eso? Sólo me gustaría tener una tabla de colores también.

Respuesta1

instale el paquete llamado como:

prueba de color

y disfruta coloreando ejecutando los binarios como colortest-8 colortest-16 colortest-16by así sucesivamente

Respuesta2

La secuencia de escape ESC [ SPEC1 ; … mcambia los atributos del texto (color, negrita, etc.) de los caracteres escritos posteriormente. éste es uno deSecuencias de escape del terminal ANSI. Cada uno SPECpuede ser uno de los siguientes (la lista no es exhaustiva):

  • 0 para cambiar a los colores predeterminados.
  • 1 para activar la negrita.
  • 30 a 37 para establecer el color de primer plano (negro, rojo, verde, amarillo, azul, magenta, cian, gris).
  • 40 a 47 para establecer el color de fondo (misma lista).

Aquí hay un fragmento de shell que genera casi lo que publicaste.

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

Respuesta3

Si bien no es tan difícil de replicar, es probable que la captura de pantalla provenga detldp.org; la parte inferior de esa página contiene un script que genera la tabla que ve:

Para ayudarme a recordar qué colores están disponibles, escribí un script que muestra todos los colores en la pantalla. Daniel Crisman ha proporcionado una versión mucho mejor que incluyo a continuación:

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

Hay una tabla similar disponible como demostración en elBiblioteca F-ANSI:

Tabla de colores ANSI generada por F-ANSI

Respuesta4

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"

etcétera.

información relacionada