web-dev-qa-db-fra.com

Script pour afficher toutes les couleurs du terminal

Sur Internet, j'ai vu beaucoup de gens avec des scripts qui impriment un tas de choses dans toutes les couleurs définies dans ~/.Xdefaults. Cependant, lorsque j'essaie de les utiliser, j'obtiens toujours error: Bad Substitution. Est-ce que quelqu'un a un script de travail qui fait la même chose?

Cela devrait ressembler à quelque chose comme ça: enter image description here

70
Kironide

Voici ma solution avec Bash uniquement:

for x in {0..8}; do 
    for i in {30..37}; do 
        for a in {40..47}; do 
            echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "
        done
        echo
    done
done
echo ""

Bon mot:

for x in {0..8}; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo ""

Voici une image dans Cygwin:

Cygwin screenshot

70
oktay

Vous pouvez également utiliser le colortestname__ Install colortest package.

  1. Installez-le avec cette commande:

    Sudo apt-get install colortest
    
  2. Il fournit plusieurs commandes que vous pouvez utiliser, en fonction du nombre de couleurs que vous souhaitez:

    colortest-16   colortest-16b  colortest-256  colortest-8
    

Exemple de sortie de colortest-16b:

enter image description here

37
kiri

Voici ma version:

#!/usr/bin/env python
import sys
terse = "-t" in sys.argv[1:] or "--terse" in sys.argv[1:]
write = sys.stdout.write
for i in range(2 if terse else 10):
    for j in range(30, 38):
        for k in range(40, 48):
            if terse:
                write("\33[%d;%d;%dm%d;%d;%d\33[m " % (i, j, k, i, j, k))
            else:
                write("%d;%d;%d: \33[%d;%d;%dm Hello, World! \33[m \n" %
                      (i, j, k, i, j, k,))
        write("\n")

Ceci affiche tout. Si vous voulez une belle table (qui affiche uniquement les styles (0) et (1), normal et gras), vous pouvez utiliser l'argument -t ou --terse:

Le style 'clignotement' (5) ne fonctionne pas avec gnome-terminal. ;-)


Si cela ne fonctionne pas pour vous, il y a autre chose qui ne va pas. S'il vous plaît laissez-nous savoir une fois que vous avez testé.

31
Stefano Palazzo

Une ligne simple qui devrait fonctionner pour la plupart des gens.

msgcat --color=test
19
JacK TrocinskI

j'ai fait un petit script pour ça :)

vous lui transmettez un numéro net il crache nlignes colorées avec l'index ansi de chaque couleur (vous pouvez l'utiliser dans $(tput setaf <ansi-index>)).

voici une capture d'écran de la sortie (partielle):

ansi-colors

j'ai aussi eu celui-ci , que j'ai fourré (et légèrement modifié) à partir de twerth :

#!/usr/bin/env bash

echo -e "\033[0mNC (No color)"
echo -e "\033[1;37mWHITE\t\033[0;30mBLACK"
echo -e "\033[0;34mBLUE\t\033[1;34mLIGHT_BLUE"
echo -e "\033[0;32mGREEN\t\033[1;32mLIGHT_GREEN"
echo -e "\033[0;36mCYAN\t\033[1;36mLIGHT_CYAN"
echo -e "\033[0;31mRED\t\033[1;31mLIGHT_RED"
echo -e "\033[0;35mPURPLE\t\033[1;35mLIGHT_PURPLE"
echo -e "\033[0;33mYELLOW\t\033[1;33mLIGHT_YELLOW"
echo -e "\033[1;30mGRAY\t\033[0;37mLIGHT_GRAY"

… Qui, dans mon thème actuel, montre:

terminal puts out (it's colors)!

7
Eliran Malka

Voulu récemment trouver ce script que beaucoup de gens se réfèrent à moi-même. C’est tiré du BUT Prompt HOWTO de tldp.org - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html . Le script est écrit par Daniel Crisman.

La sortie est exactement la même que sur la photo de la question. Le script lui-même:

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

Voir https://askubuntu.com/a/396555/4101 Cela imprimera la sortie suivante dans des formats tels que BOLD, UNDERLINE, Highlighting et couleurs.

Small script to display possible terminal colors

1
Kesavan Muthuvel

Ceci est une version modifiée du script TLDP here . Il affiche les couleurs standard et les couleurs vives (codes 90-97 et 100-107).

#!/bin/bash
# Show available terminal colours.
# Heavily modified version of the TLDP script here:
# http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html

print_colors(){
  # Print column headers.
  printf "%-4s  " '' ${bgs[@]}
  echo
  # Print rows.
  for bold in ${bolds[@]}; do
    for fg in ${fgs[@]}; do
      # Print row header
      printf "%s;%s  " $bold $fg
      # Print cells.
      for bg in ${bgs[@]}; do
        # Print cell.
        printf "\e[%s;%s;%sm%s\e[0m  " $bold $fg $bg "text"
      done
      echo
    done
  done
}

# Print standard colors.
bolds=( 0 1 )
fgs=( 3{0..7} )
bgs=( 4{0..8} )
print_colors

# Print vivid colors.
bolds=( 0 ) # Bold vivid is the same as bold normal.
fgs=( 9{0..7} )
bgs=( 10{0..8} )
print_colors

Exemple de sortie:

gnome-terminal screenshot

1
wjandrea