Script per visualizzare tutti i colori del terminale

52

In Internet ho visto molte persone con script che stampano un sacco di cose in tutti i colori definiti in ~/.Xdefaults . Tuttavia, quando provo a utilizzarli, ottengo sempre error: Bad Substitution . Qualcuno ha uno script funzionante che fa la stessa cosa?

Dovrebbe finire per sembrare qualcosa del genere:

    
posta Kironide 20.02.2011 - 22:19

8 risposte

61

Ecco la mia soluzione solo con Bash:

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

Ecco un'immagine in Cygwin:

    
risposta data oktay 07.04.2013 - 23:23
29

Ecco la mia versione:

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

Questo stampa tutto . Se vuoi una tabella piacevole (che mostra solo lo stile (0) e (1), normale e grassetto), puoi utilizzare l'argomento -t o --terse :

Lo stile 'blink' (5) non funziona con gnome-terminal. ; -)

Se questo non funziona per te, c'è qualcos'altro che non va. Per favore faccelo sapere dopo averlo testato.

    
risposta data Stefano Palazzo 20.02.2011 - 23:00
27

Puoi anche utilizzare colortest pacchetto.

  1. Installalo con questo comando:

    sudo apt-get install colortest
    
  2. Fornisce diversi comandi che puoi usare, a seconda del numero di colori che desideri:

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

Esempio di output da colortest-16b :

    
risposta data kiri 27.12.2013 - 23:44
5

ho creato un piccolo script per questo:)

lo passi un numero n e sputa n linee colorate insieme all'indice ansi di ogni colore (puoi usarlo in $(tput setaf <ansi-index>) ).

ecco uno screenshot dell'output (parziale):

ho anche ricevuto questo , che ho biforcato (e leggermente modificato) da 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"

... che, nel mio tema corrente, mostra:

    
risposta data Eliran Malka 27.07.2016 - 00:35
4

Un semplice liner che dovrebbe funzionare per la maggior parte delle persone.

msgcat --color=test
    
risposta data JacK TrocinskI 08.06.2018 - 15:09
3

Recentemente ho voluto trovare quella sceneggiatura che molte persone si riferiscono a me stesso. È dal Bash Prompt HOWTO di tldp.org - link . La sceneggiatura è stata creata da Daniel Crisman.

Esce esattamente come nella foto dalla domanda. Lo script stesso:

#!/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
    
risposta data Illia 21.04.2015 - 12:11
1

Consulta link Ciò stamperà il seguente output con formati come BOLD, UNDERLINE, Evidenziazione e colori.

    
risposta data Kesavan Muthuvel 27.12.2013 - 23:22
1

Questa è una versione modificata dello script TLDP qui . Mostra i colori standard e i colori vividi (codici 90-97 e 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

Esempio di output:

    
risposta data wjandrea 14.02.2017 - 02:23

Leggi altre domande sui tag