すべての端末の色を表示するスクリプト


74

インターネット全体で、私は多くの人々がで定義されたすべての色でたくさんのものを印刷するスクリプトを見ました~/.Xdefaults。ただし、これらを使用しようとすると、常にが取得され error: Bad Substitutionます。誰も同じことをする作業スクリプトを持っていますか?

最終的には次のようになります。 ここに画像の説明を入力してください


1
使用しているスクリプトを投稿する方が簡単かもしれませんし、どのように、どこから呼び出しているのかもわかりません。
ルリ

1
ArchWikiでこのためのスクリプトのコレクションを見つけることができます。
-aloisdg

1
いくつかのカラー印刷スクリプトをパッケージ化して、ここに配置し、例、感謝、およびbrewインストールを完了します。
pvinis

1
@pvinisありがとう!私は、OPの画面に表示されているものを正確に見つけようとして、あまりにも多くの時間を費やしました。
詳細

1
:FWIW、これはイメージがどこから来たように思わweb.archive.org/web/20110809032233/https://bbs.archlinux.org/...。投稿には使用されている配色が含まれており、スレッドの最初の投稿には画像の生成に使用されたソースコードが引用されています。
mwfearnley

回答:


74

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スクリーンショット


1
参考{30..37}までに`seq 30 37`、bashと同等で、高速です。
バリーケリー

1
@BarryKelly:良いヒント、ありがとう。ちょうどテストし、あなたが述べたように:それは本当にはるかに速いです!:-)ので、ここで新しいものです:for x in 0 1 4 5 7 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 "";
オクタイ

これはMacでも動作しますか?
kyo

@ihueこれがあなたの質問に答えるかどうかを確認してください:Mac OS Xでターミナルの外観を改善するための簡単なコツ。詳細については、AskDifferent.com
wjandrea

サンプルコードはMacOSでは機能しませんでしたが、Pythonの答えは機能しました。
ソリン

40

colortest colortestをインストールするパッケージを使用することもできます。

  1. 次のコマンドでインストールします:

    sudo apt-get install colortest
  2. 必要な色数に応じて、使用できるいくつかのコマンドを提供します。

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

からの出力例colortest-16b

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


33

これが私のバージョンです。

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

これはすべてを印刷します。素敵なテーブル(スタイル(0)と(1)、標準と太字のみを表示)が必要な場合は、-tor --terse引数を使用できます。

'blink'スタイル(5)はgnome-terminalでは機能しません。;-)


これがうまくいかない場合は、何か他の問題があります。テストが完了したらお知らせください。


私のプロンプトの色は次のように定義されています。DULL=0 BRIGHT=1 FG_WHITE=37 WHITE="\[$ESC[${DULL};${FG_WHITE}m\]"鈍い白(0;37;40)が白より灰色で、明るい白(1;37;40)が太字になっているのはなぜですか?端末フォントを太字ではなく、明るい白に黒に設定したいと思います。スクリプトを実行すると、最初の行の後1;37;40に完全に正常見えます:5img.com/img13/740/24screenshot.pngしたがって、PS1行はテキストの色になります0;30;40。の色でお願いし0;30;41ます。
17:10にappas

他の誰かがこのマゼンタを特にいですか?泥のようです。
エーテル

あなたは男性の間の神です。最高のクロスプラットフォームソリューション。ありがとう
アンドレ・テラ

25

ほとんどの人に役立つはずのシンプルなワンライナー。

msgcat --color=test

デッドシンプル。デフォルトの背景色のみを取得することは可能ですか?
vrcmr

msgcat --helpはあなたがやったことを説明しません...それはイースターエッグですか?
vrcmr

@vrcmr私はどこかで、どこかでブログでこのワンライナーに出くわしましたが、残念ながら--color=testmsgcatのマニュアルページにも言及が見つかりませんでした。構成不可能なイースターエッグだと思います。
JacKトロシンスクI

興味のある方--color=testは、セクション9.11.2で言及されていますinfo msgcat
Gerrit0

7

私が作っ小さなスクリプトをそのために:)

あなたはそれ数渡し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"

…私の現在のテーマでは、次のことを示しています。

ターミナルが出ます(色です)!


これはMacでも動作しますか?
kyo

これらは私たちが持つことができる唯一の7色ですか?
kyo

@ihue-もちろんそうではありません。そのためのスクリプトを作成しまし。あなたはそれに数字n(例えば256)を渡すことができ、それはnあなたの端末がサポートする色を吐き出します。
エリランマルカ

スクリプトはクールですが#!/usr/bin/env sh、良いアイデアではありません。Ubuntuのデフォルトのシェル(ダッシュ)では機能しません。bashに変更する必要がありました。
テレサeジュニア

5

最近、多くの人が自分を参照しているスクリプトを見つけたかった。これは、tldp.org Bash Prompt HOWTO- http: //tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.htmlからのものです。スクリプトは、ダニエルクリスマンによって作成されています。

質問の写真とまったく同じ結果を出力します。スクリプト自体:

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


1

これはTLDPスクリプトの修正バージョンです。標準色と鮮やかな色(コード90〜97および100〜107)が表示されます。

#!/bin/bash
# Show available terminal colours.
# Heavily modified version of the TLDP script here:
# http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html

print_colors(){
  # Print column headers.
  printf "%-4s  " '' ${bgs[@]}
  echo
  # Print rows.
  for bold in ${bolds[@]}; do
    for fg in ${fgs[@]}; do
      # Print row header
      printf "%s;%s  " $bold $fg
      # Print cells.
      for bg in ${bgs[@]}; do
        # Print cell.
        printf "\e[%s;%s;%sm%s\e[0m  " $bold $fg $bg "text"
      done
      echo
    done
  done
}

# Print standard colors.
bolds=( 0 1 )
fgs=( 3{0..7} )
bgs=( 4{0..8} )
print_colors

# Print vivid colors.
bolds=( 0 ) # Bold vivid is the same as bold normal.
fgs=( 9{0..7} )
bgs=( 10{0..8} )
print_colors

出力例:

gnome-terminalのスクリーンショット


0

この質問は、実際に端末でカラーコードを表示する方法を検索したときの上位結果です。だから私は正義を与え、OPがまさに探していたものを与えたかった。私はスクリーンショットがいくぶん馴染みがあることを覚えています。最初はゴッホのものだと思っていましたが、少し違います。その後、iTerm2カラーで使用されているのとまったく同じスクリプトであることに気付きました

幸運なことに、彼らはそれが元々どこから来たのかについてのコメントを追加しました

参照用にスクリプトを投稿しています。iTerm2から元のクレジットを取得しました。

#!/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).
#
#   Copied from http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html

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

動作中のスクリプトは次のとおりです。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.