it-swarm.dev

Skript pro zobrazení všech barev terminálu

Na celém internetu jsem viděl mnoho lidí se skripty, které vytisknou spoustu věcí ve všech barvách definovaných v ~/.Xdefaults. Když se je však pokusím použít, vždy dostanu error: Bad Substitution. Má někdo pracovní skript, který dělá totéž?

Nakonec by to mělo vypadat takto: enter image description here

85
Kironide

Tady je moje řešení pouze s 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 ""

Jednodílný:

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

Zde je obrázek v Cygwin:

Cygwin screenshot

86
oktay

Můžete také použít colortest Install colortest balíček.

  1. Nainstalujte jej pomocí tohoto příkazu:

    Sudo apt-get install colortest
    
  2. Poskytuje několik příkazů, které můžete použít v závislosti na tom, kolik barev chcete:

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

Příklad výstupu z colortest-16b:

enter image description here

44
kiri

Jednoduchá obšívka, která by měla fungovat pro většinu lidí.

msgcat --color=test
34

Tady je moje verze:

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

Toto vytiskne všechno. Pokud chcete tabulku Nice (která zobrazuje pouze styl (0) a (1), normální a tučné), můžete použít -t nebo --terse argument:

Styl „mrknutí“ (5) nefunguje s terminálem gnome. ;-)


Pokud to pro vás nefunguje, je tu ještě něco špatného. Jakmile to otestujete, dejte nám vědět.

34
Stefano Palazzo

udělal jsem pro to malý skript :)

předáte mu číslo n a vyplivne n barevné řádky spolu s indexem ansi každé barvy (můžete jej použít v $(tput setaf <ansi-index>)).

zde je snímek obrazovky (částečného) výstupu:

ansi-colors

také jsem dostal tento , který jsem vidlil (a mírně upravil) z 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"

… Což v mém aktuálním tématu ukazuje:

terminal puts out (it's colors)!

7
Eliran Malka

Nedávno chtěli najít ten skript, na který se mnoho lidí odvolává. Je to z tldp.org Bash Prompt HOWTO - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html . Scénář je autorem Daniel Crisman.

Výsledkem je úplně stejné jako na obrázku z otázky. Samotný skript:

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

Viz https://askubuntu.com/a/396555/4101 Tím se vytiskne následující výstup ve formátech jako BOLD, UNDERLINE, zvýraznění a barvy.

Small script to display possible terminal colors

1
Kesavan Muthuvel

Tato otázka je ve skutečnosti nejlepší výsledek, když hledám, jak zobrazit barevné kódy v terminálu. Chtěl jsem tedy dát spravedlnost a dát to, co OP přesně hledal. Pamatuji si, že snímek obrazovky je poněkud známý. Nejprve jsem si myslel, že to bylo od Gogh , ale je to trochu jiné. Pak jsem si uvědomil, že je to přesně stejný skript, který se používá v iTerm2 barvy .

Naštěstí přidali komentář k tomu, kde původně přišel z

Skript posílám pro informaci, převzatý z iTerm2 s původními kredity:

#!/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).
#
#   Copied from http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html

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

Zde je skript v akci:

enter image description here

1
chriz

Toto je upravená verze skriptu TLDP zde . Zobrazuje standardní barvy a živé barvy (kódy 90-97 a 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

Příklad výstupu:

gnome-terminal screenshot

1
wjandrea