次のスクリーンショットのような testcolor.sh を作成するにはどうすればよいですか?

次のスクリーンショットのような testcolor.sh を作成するにはどうすればよいですか?

この画像はインターネットで見つけたのですが、どうやって作られたのか分かりません。

ここに画像の説明を入力してください

誰かサンプルを提供してもらえますか? カラーテーブルも欲しいです。

答え1

次の名前のパッケージをインストールします:

カラーテスト

colortest-8 colortest-16 colortest-16bなどのバイナリを実行して色付けを楽しんでください。

答え2

エスケープシーケンスは、ESC [ SPEC1 ; … mその後に書き込まれる文字のテキスト属性(色、太字など)を変更します。これは、ANSI 端末エスケープシーケンスそれぞれはSPEC次のいずれかになります (リストは網羅的ではありません)。

  • 0 にするとデフォルトの色に切り替わります。
  • 1 太字をオンにします。
  • 30 から 37 で前景色 (黒、赤、緑、黄、青、マゼンタ、シアン、グレー) を設定します。
  • 40 から 47 まで背景色を設定します (同じリスト)。

以下は、投稿したものとほぼ同じ内容を出力するシェル スニペットです。

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

答え3

再現するのはそれほど難しくありませんが、スクリーンショットはおそらく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

同様の表がデモとして入手可能です。F-ANSI ライブラリ:

F-ANSI によって生成された ANSI カラー テーブル

答え4

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"

等々。

関連情報