Wie erstelle ich eine testcolor.sh wie im folgenden Screenshot?

Wie erstelle ich eine testcolor.sh wie im folgenden Screenshot?

Ich habe dieses Bild im Internet gefunden, weiß aber nicht, wie es gemacht wurde.

Bildbeschreibung hier eingeben

Kann mir jemand ein Beispiel dazu liefern? Ich hätte auch gerne eine Farbtabelle.

Antwort1

Installieren Sie das Paket mit dem Namen:

Farbtest

und viel Spaß beim Ausmalen durch Ausführen der Binärdateien wie colortest-8 colortest-16 colortest-16bund so weiter

Antwort2

Die Escape-Sequenz ESC [ SPEC1 ; … mändert die Textattribute (Farbe, Fettdruck usw.) der nachfolgenden Zeichen. Dies ist eine derANSI-Terminal-Escapesequenzen. Jeder SPECkann einer der folgenden sein (die Liste ist nicht vollständig):

  • 0, um zu den Standardfarben zu wechseln.
  • 1, um Fettschrift einzuschalten.
  • 30 bis 37, um die Vordergrundfarbe festzulegen (Schwarz, Rot, Grün, Gelb, Blau, Magenta, Cyan, Grau).
  • 40 bis 47, um die Hintergrundfarbe festzulegen (dieselbe Liste).

Hier ist ein Shell-Snippet, das fast das ausgibt, was Sie gepostet haben.

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

Antwort3

Obwohl es nicht so schwer zu replizieren ist, stammt Ihr Screenshot wahrscheinlich vonwww.tldp.org; unten auf der Seite befindet sich ein Skript, das die angezeigte Tabelle ausgibt:

Um mir zu merken, welche Farben verfügbar sind, habe ich ein Skript geschrieben, das alle Farben auf dem Bildschirm ausgibt. Daniel Crisman hat eine viel schönere Version bereitgestellt, die ich unten einfüge:

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

Eine ähnliche Tabelle gibt es als Demo imF-ANSI-Bibliothek:

Von F-ANSI generierte ANSI-Farbtabelle

Antwort4

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"

und so weiter.

verwandte Informationen