显示所有终端颜色的脚本

Joh*_*ard 100 colors command-line bash scripts

在整个互联网上,我看到很多人使用脚本打印出一堆~/.Xdefaults. 但是,当我尝试使用这些时,我总是得到 error: Bad Substitution. 有没有人有一个可以做同样事情的工作脚本?

它最终应该看起来像这样: 在此处输入图片说明

okt*_*tay 108

这是我仅使用 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 ""
Run Code Online (Sandbox Code Playgroud)

单线:

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 ""
Run Code Online (Sandbox Code Playgroud)

这是 Cygwin 中的图片:

Cygwin 截图

  • 仅供参考,`{30..37}` 相当于 bash 中的 `\`seq 30 37\`` 并且速度更快。 (2认同)
  • @BarryKelly:好的提示,谢谢。刚刚测试过,正如你所指出的:它真的快得多!!!:-) 所以这里是新的:`for x in 0 1 4 5 7 8; 在 {30..37} 中为 i 做;做一个 in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; 完毕; 回声; 完毕; 完毕; 回声“”; ` (2认同)

小智 66

一个简单的单线应该适用于大多数人。

msgcat --color=test
Run Code Online (Sandbox Code Playgroud)

  • 对于其他感兴趣的人,在第 9.11.2 节中提到了 `--color=test``info msgcat` 下的环境变量 'TERM' (2认同)

kir*_*iri 58

您还可以使用 colortest 安装试色 包裹。

  1. 使用以下命令安装它:

    sudo apt-get install colortest
    
    Run Code Online (Sandbox Code Playgroud)
  2. 它提供了几个您可以使用的命令,具体取决于您想要的颜色数量:

    colortest-16   colortest-16b  colortest-256  colortest-8
    
    Run Code Online (Sandbox Code Playgroud)

示例输出colortest-16b

在此处输入图片说明


Ste*_*zzo 34

这是我的版本:

#!/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")
Run Code Online (Sandbox Code Playgroud)

这将打印所有内容。如果你想要一个漂亮的表格(只显示样式(0)和(1),正常和粗体),你可以使用-tor--terse参数:

“闪烁”样式 (5) 不适用于 gnome-terminal。;-)


如果这对您不起作用,则说明还有其他问题。请在您测试后告诉我们。


Eli*_*lka 10

我为此做了一个小脚本:)

你给它传递一个数字n,它会n随着每种颜色的 ansi 索引吐出彩色线条(你可以在 中使用它$(tput setaf <ansi-index>))。

这是(部分)输出的屏幕截图:

ansi-颜色

我也得到了这个,我从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"
Run Code Online (Sandbox Code Playgroud)

……在我当前的主题中,显示:

终端熄灭(它的颜色)!


小智 6

最近想找那个很多人都在参考自己的剧本。它来自 tldp.org Bash Prompt HOWTO - http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html。剧本由丹尼尔·克里斯曼 (Daniel Crisman) 撰写。

它的输出与问题中的图片完全相同。脚本本身:

#!/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
Run Code Online (Sandbox Code Playgroud)


小智 5

这是我的解决方案。它打印所有 225 种颜色bash

for colour in {1..225}
    do echo -en "\033[38;5;${colour}m38;5;${colour} \n"
done | column -x
Run Code Online (Sandbox Code Playgroud)