コンソールの色を表示するbash関数を作成しました。
しかし、いくつかの色はこのように表示されないようです! (?)
また、奇妙な「光沢のある黒」の色に注目してください!
(注:以下の画面ダンプはxtermから取得したものですが、コンソールモードで使用するためのものです。画面ダンプを取得するにはxtermを使用する必要がありましたが、似ているようです)。
function clr () {
Color_names="bla red gre yel blu mag cya whi"
Color_arr=($Color_names)
for m in {0..15}
do
tput setaf $m
echo -n ${Color_arr[$((m % 8))]}" "
done
echo
tput sgr0
cat /sys/module/vt/parameters/default_red \
/sys/module/vt/parameters/default_grn \
/sys/module/vt/parameters/default_blu | tr "," "\t"
}
答え1
を確認すると、tput colors
答えは8であることがわかります。明るい色を表現する方法はを通してですtput bold
。
前景と背景のすべての8x8x2の組み合わせ(通常と太字)が表示されます。
for cmd in sgr0 bold; do
tput $cmd
for i in $(seq 0 7); do
for j in $(seq 0 7); do
tput setaf $i; tput setab $j; echo -n " $i,$j "
done
tput sgr0; echo; tput $cmd
done
done
答え2
このブログ投稿をご覧ください。 http://www.enigmacurry.com/2009/01/20/256-colors-on-the-linux-terminal/
編集:結果が8色しかない場合は、tput-color
ncursesを使用して弱点を解決できます! Ubuntuにインストールしてください:
sudo apt-get install ncurses-term
そして、〜/.bashrcまたは〜/bash_profileに次の行を追加します。
export TERM=xterm-256color
スクリプトの代わりにemacsコマンドを使用して色を表示できます。端末でemacsを実行し、emacs -nw
コマンドを入力します。M-x list-colors-display
どの端末を使用しても、このツールはすべての端末エミュレータで動作します;-)
答え3
Linuxコンソールで使用できる複数の端末記述があります。最も一般的に使用されるのはもちろん、次のように設定されます。TERM=linux
。
代わりにTERM=linux-16color
、@angusの答えが示すように、太い色/色の組み合わせを行います。
比較linux
とlinux-16color
表示infocmp
:
comparing linux to linux-16color.
comparing booleans.
comparing numbers.
colors: 8, 16.
ncv: 18, 63.
pairs: 64, 256.
comparing strings.
setab: '\E[4%p1%dm', '\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m'.
setaf: '\E[3%p1%dm', '\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m'.
%t;5
とフラグメントは、点滅と太字のプロパティ(ディスプレイハードウェアの機能)を使用して、に入力された値に基づいて%t;1
明るい背景色と前景色を取得します。tput setab
tput setaf
以下は、ncursesテストプログラムを使用して行ったスクリーンショットですlinux-16color
。