显示所有终端颜色的脚本

显示所有终端颜色的脚本

在整个互联网上,我看到许多人使用脚本打印出一堆以 中定义的所有颜色的东西~/.Xdefaults。但是当我尝试使用这些脚本时,我总是得到 error: Bad Substitution。有没有人有可以做同样事情的脚本?

最终看起来应该是这样的: 在此处输入图片描述

答案1

以下是我仅使用 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 ""

单行:

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

这是 Cygwin 中的一张图片:

Cygwin 屏幕截图

答案2

一个简单的单行命令,应该适用于大多数人。

msgcat --color=test

答案3

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

  1. 使用以下命令安装:

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

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

示例输出来自colortest-16b

在此处输入图片描述

答案4

我制造了一个小脚本为了那个原因 :)

这是重点部分:

colors=$@
for (( n=0; n < $colors; n++ )) do
    printf " [%d] $(tput setaf $n)%s$(tput sgr0)" $n "wMwMwMwMwMwMw
"
done

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

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

ansi 颜色

我也得到了这个,我从中分叉(并稍作修改)特沃斯

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

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

终端放出(它的颜色)!

相关内容