如何像下面的截图一样创建一个 testcolor.sh?

dai*_*isy 26 colors bash shell-script

我在网上找到了这张图,但不知道它是怎么制作的,

在此处输入图片说明

任何人都可以提供样本吗?我也想有一个颜色表。

SHW*_*SHW 28

安装名为:

试色

并享受通过运行二进制文件像着色colortest-8 colortest-16 colortest-16b

  • 这个答案可能是指特定 Linux 发行版中的包。其他 Unix 版本的可用资源在哪里? (3认同)

Gil*_*il' 19

转义序列会ESC [ SPEC1 ; … m更改随后写入的字符的文本属性(颜色、粗体等)。这是ANSI 终端转义序列之一。每个都SPEC可以是以下之一(列表并不详尽):

  • 0 切换到默认颜色。
  • 1 打开粗体。
  • 30 到 37 设置前景色(黑色、红色、绿色、黄色、蓝色、品红色、青色、灰色)。
  • 40 到 47 设置背景颜色(相同列表)。

这是一个 shell 片段,几乎输出了您发布的内容。

printf "          "
for b in 0 1 2 3 4 5 6 7; do printf "  4${b}m "; done
echo
for f in "" 30 31 32 33 34 35 36 37; do
    for s in "" "1;"; do
        printf "%4sm" "${s}${f}"
        printf " \033[%sm%s\033[0m" "$s$f" "gYw "
        for b in 0 1 2 3 4 5 6 7; do
            printf " \033[4%s;%sm%s\033[0m" "$b" "$s$f" " gYw "
        done
        echo
     done
done
Run Code Online (Sandbox Code Playgroud)


dim*_*414 10

虽然复制起来并不难,但您的屏幕截图可能来自tldp.org;该页面的底部包含一个脚本,用于输出您看到的表格:

为了帮助自己记住可用的颜色,我编写了一个脚本将所有颜色输出到屏幕。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)

F-ANSI 库中有一个类似的表可用作演示:

F-ANSI生成的ANSI颜色表

  • 这是问题的确切答案。 (2认同)

jas*_*yan 9

Arch Wiki Xresouces 页面上列出了一些变体,准确地说是六个变体。

除了你的截图中使用的那个,还有一些更有创意的——我最喜欢的是来自 Crunchbang 论坛和太空入侵者:

#!/bin/bash
#
# ANSI color scheme script featuring Space Invaders
#
# Original: http://crunchbanglinux.org/forums/post/126921/#p126921
# Modified by lolilolicon
#

f=3 b=4
for j in f b; do
  for i in {0..7}; do
    printf -v $j$i %b "\e[${!j}${i}m"
  done
done
bld=$'\e[1m'
rst=$'\e[0m'

cat << EOF

 $f1  ??   ??     $f2 ??????????    $f3  ????     $f4  ??   ??     $f5 ??????????    $f6  ????  $rst
 $f1 ?????????    $f2????????????   $f3????????   $f4 ?????????    $f5????????????   $f6????????$rst
 $f1???????????   $f2????????????   $f3????????   $f4???????????   $f5????????????   $f6????????$rst
 $f1? ??? ??? ?   $f2 ??? ?? ???    $f3??    ??   $f4? ??? ??? ?   $f5 ??? ?? ???    $f6??    ??$rst

 $bld$f1? ??   ?? ?   $f2 ??????????    $f3  ????     $f4? ??   ?? ?   $f5 ??????????    $f6  ????  $rst
 $bld$f1???????????   $f2????????????   $f3????????   $f4???????????   $f5????????????   $f6????????$rst
 $bld$f1???????????   $f2????????????   $f3????????   $f4???????????   $f5????????????   $f6????????$rst
 $bld$f1 ??     ??    $f2???? ?? ????   $f3????????   $f4 ??     ??    $f5???? ?? ????   $f6????????$rst


                                     $f7?$rst

                                   $f7?$rst

                              $f7    ???    $rst
                              $f7???????????$rst
                              $f7???????????$rst

EOF
Run Code Online (Sandbox Code Playgroud)

史派西

  • 很公平:我链接到的 wiki 页面还包含您屏幕截图中的脚本;我只是认为这是一种更有趣的显示 X​​ 颜色的方式:) (2认同)

rus*_*ush 7

echo -e "\n\033[4;31mLight Colors\033[0m \t\t\t  \033[1;4;31mDark Colors\033[0m"
echo -e " \e[0;30;47m Black     \e[0m   0;30m \t\t \e[1;30;40m Dark Gray   \e[0m  1;30m"
echo -e " \e[0;31;47m Red       \e[0m   0;31m \t\t \e[1;31;40m Dark Red    \e[0m  1;31m"
echo -e " \e[0;32;47m Green     \e[0m   0;32m \t\t \e[1;32;40m Dark Green  \e[0m  1;32m"
echo -e " \e[0;33;47m Brown     \e[0m   0;33m \t\t \e[1;33;40m Yellow      \e[0m  1;33m"
echo -e " \e[0;34;47m Blue      \e[0m   0;34m \t\t \e[1;34;40m Dark Blue   \e[0m  1;34m"
echo -e " \e[0;35;47m Magenta   \e[0m   0;35m \t\t \e[1;35;40m Dark Magenta\e[0m  1;35m"
echo -e " \e[0;36;47m Cyan      \e[0m   0;36m \t\t \e[1;36;40m Dark Cyan   \e[0m  1;36m"
echo -e " \e[0;37;47m Light Gray\e[0m   0;37m \t\t \e[1;37;40m White       \e[0m  1;37m"
Run Code Online (Sandbox Code Playgroud)

等等。