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 中的图片:
小智 66
一个简单的单线应该适用于大多数人。
msgcat --color=test
Run Code Online (Sandbox Code Playgroud)
kir*_*iri 58
您还可以使用 colortest 包裹。
使用以下命令安装它:
sudo apt-get install colortest
Run Code Online (Sandbox Code Playgroud)它提供了几个您可以使用的命令,具体取决于您想要的颜色数量:
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>))。
这是(部分)输出的屏幕截图:
#!/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)