Script pour afficher toutes les couleurs des terminaux

52

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, quand 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 finir par ressembler à ceci:

    
posée Kironide 20.02.2011 - 22:19
la source

8 réponses

61

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 ""

One-liner:

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:

    
réponse donnée oktay 07.04.2013 - 23:23
la source
29

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("[%d;%d;%dm%d;%d;%d[m " % (i, j, k, i, j, k))
            else:
                write("%d;%d;%d: [%d;%d;%dm Hello, World! [m \n" %
                      (i, j, k, i, j, k,))
        write("\n")

Ceci imprime tout . Si vous voulez une belle table (qui ne montre que le style (0) et (1), normal et gras), vous pouvez utiliser l’argument -t ou --terse :

Le style 'blink' (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 l'avez testé.

    
réponse donnée Stefano Palazzo 20.02.2011 - 23:00
la source
27

Vous pouvez également utiliser la 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 :

    
réponse donnée kiri 27.12.2013 - 23:44
la source
5

J'ai créé un petit script pour cela:)

vous lui passez un nombre n et il crache des lignes colorées n 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):

J'ai aussi celui-ci , que j'ai fourré (et légèrement modifié) depuis twerth :

#!/usr/bin/env bash

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

... qui, dans mon thème actuel, montre:

    
réponse donnée Eliran Malka 27.07.2016 - 00:35
la source
4

Un simple traceur qui devrait fonctionner pour la plupart des gens.

msgcat --color=test
    
réponse donnée JacK TrocinskI 08.06.2018 - 15:09
la source
3

Récemment, je voulais trouver ce script que beaucoup de gens se réfèrent. C'est à partir du guide de l'invite Bld tldp.org - lien . Le script est écrit par Daniel Crisman.

Il produit exactement la même chose 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 3[$FG  $T  "
  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
    do echo -en "$EINS 3[$FG3[$BG  $T  3[0m";
  done
  echo;
done
echo
    
réponse donnée Illia 21.04.2015 - 12:11
la source
1

Référez-vous à lien Cela imprimera la sortie suivante avec des formats tels que BOLD, UNDERLINE, Highlighting et colors.

    
réponse donnée Kesavan Muthuvel 27.12.2013 - 23:22
la source
1

Il s'agit d'une version modifiée du script TLDP ici . Il montre 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:

    
réponse donnée wjandrea 14.02.2017 - 02:23
la source

Lire d'autres questions sur les étiquettes