インターネット全体で、~/.Xdefaults
で定義されているすべての色で大量のものを印刷するスクリプトを持っている多くの人々を見てきました。ただし、これらを使用しようとすると、常にerror: Bad Substitution
が返されます。誰も同じことをする作業スクリプトを持っていますか?
最終的には次のようになります。
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の写真を次に示します。
colortest
を使用することもできます パッケージ。
次のコマンドでインストールします:
Sudo apt-get install colortest
必要な色数に応じて、使用できるいくつかのコマンドが用意されています。
colortest-16 colortest-16b colortest-256 colortest-8
colortest-16b
からの出力例:
これが私のバージョンです。
#!/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")
これはeverythingを出力します。素敵なテーブル(スタイル(0)と(1)のみを表示し、通常と太字)が必要な場合は、-t
または--terse
引数を使用できます。
'blink'スタイル(5)はgnome-terminalでは機能しません。 ;-)
これがうまくいかない場合は、何か他の問題があります。テストが完了したらお知らせください。
ほとんどの人に役立つはずのシンプルなワンライナー。
msgcat --color=test
私は 小さなスクリプト を作成しました:)
それに数字n
を渡し、各色のANSIインデックスとともにn
色付きの線を吐き出します($(tput setaf <ansi-index>)
で使用できます)。
以下は(部分的な)出力のスクリーンショットです。
私も this one を得ました。これは 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"
…私の現在のテーマでは、以下を示しています。
最近、多くの人が自分を参照しているスクリプトを見つけたいと思っていました。これは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
参照 https://askubuntu.com/a/396555/4101 これは、太字、アンダーライン、強調表示、色などの形式で次の出力を印刷します。
これは、TLDPスクリプトの修正バージョンです here 。標準色と鮮やかな色(コード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
出力例: