টিপুটতে উপলভ্য রঙগুলির গণনা দ্বারা প্রদত্ত tput colors।
বেসিক 8 টি রঙ দেখতে (যেমন setfurxvt টার্মিনাল এবং এক্সটার্ম টার্মিনালে ব্যবহৃত setaf):
$ printf '\e[%sm▒' {30..37} 0; echo ### foreground
$ printf '\e[%sm ' {40..47} 0; echo ### background
এবং সাধারণত এটি হিসাবে নামকরণ করা হয়:
Color #define Value RGB
black COLOR_BLACK 0 0, 0, 0
red COLOR_RED 1 max,0,0
green COLOR_GREEN 2 0,max,0
yellow COLOR_YELLOW 3 max,max,0
blue COLOR_BLUE 4 0,0,max
magenta COLOR_MAGENTA 5 max,0,max
cyan COLOR_CYAN 6 0,max,max
white COLOR_WHITE 7 max,max,max
বর্ধিত 256 টি রং দেখতে ( setafurxvt তে ব্যবহৃত হিসাবে )
$ printf '\e[48;5;%dm ' {0..255}; printf '\e[0m \n'
আপনি যদি নম্বর এবং একটি অর্ডার আউটপুট চান:
#!/bin/bash
color(){
for c; do
printf '\e[48;5;%dm%03d' $c $c
done
printf '\e[0m \n'
}
IFS=$' \t\n'
color {0..15}
for ((i=0;i<6;i++)); do
color $(seq $((i*36+16)) $((i*36+51)))
done
color {232..255}
১ million মিলিয়ন রঙের বেশ কয়েকটি কোড দরকার (কিছু কনসোল এটি প্রদর্শন করতে পারে না)।
বেসিকগুলি হ'ল:
fb=3;r=255;g=1;b=1;printf '\e[0;%s8;2;%s;%s;%sm▒▒▒ ' "$fb" "$r" "$g" "$b"
fbহয় front/backবা 3/4।
এতগুলি রঙ উপস্থাপন করার জন্য আপনার কনসোল ক্ষমতার একটি সহজ পরীক্ষাটি হ'ল:
for r in {200..255..5}; do fb=4;g=1;b=1;printf '\e[0;%s8;2;%s;%s;%sm ' "$fb" "$r" "$g" "$b"; done; echo
বাম থেকে ডানে স্বরটিতে খুব ছোট পরিবর্তন সহ এটি একটি লাল রেখা উপস্থাপন করবে। যদি সেই ছোট পরিবর্তন দৃশ্যমান হয় তবে আপনার কনসোলটি 16 মিলিয়ন রঙের জন্য সক্ষম।
প্রতিটি r, gএবং bআরজিবি (লাল, সবুজ, নীল) এর 0 থেকে 255 এর মান।
যদি আপনার কনসোল প্রকারটি সমর্থন করে তবে এই কোডটি একটি রঙিন টেবিল তৈরি করবে:
mode2header(){
#### For 16 Million colors use \e[0;38;2;R;G;Bm each RGB is {0..255}
printf '\e[mR\n' # reset the colors.
printf '\n\e[m%59s\n' "Some samples of colors for r;g;b. Each one may be 000..255"
printf '\e[m%59s\n' "for the ansi option: \e[0;38;2;r;g;bm or \e[0;48;2;r;g;bm :"
}
mode2colors(){
# foreground or background (only 3 or 4 are accepted)
local fb="$1"
[[ $fb != 3 ]] && fb=4
local samples=(0 63 127 191 255)
for r in "${samples[@]}"; do
for g in "${samples[@]}"; do
for b in "${samples[@]}"; do
printf '\e[0;%s8;2;%s;%s;%sm%03d;%03d;%03d ' "$fb" "$r" "$g" "$b" "$r" "$g" "$b"
done; printf '\e[m\n'
done; printf '\e[m'
done; printf '\e[mReset\n'
}
mode2header
mode2colors 3
mode2colors 4


একটি হেক্স রঙের মানকে (নিকটতম) 0-255 রঙ সূচকে রূপান্তর করতে:
fromhex(){
hex=${1#"#"}
r=$(printf '0x%0.2s' "$hex")
g=$(printf '0x%0.2s' ${hex#??})
b=$(printf '0x%0.2s' ${hex#????})
printf '%03d' "$(( (r<75?0:(r-35)/40)*6*6 +
(g<75?0:(g-35)/40)*6 +
(b<75?0:(b-35)/40) + 16 ))"
}
এটি হিসাবে ব্যবহার করুন:
$ fromhex 00fc7b
048
$ fromhex #00fc7b
048
এইচটিএমএল রঙের ফর্ম্যাটে ব্যবহৃত রঙের সন্ধান করতে :
#!/bin/dash
tohex(){
dec=$(($1%256)) ### input must be a number in range 0-255.
if [ "$dec" -lt "16" ]; then
bas=$(( dec%16 ))
mul=128
[ "$bas" -eq "7" ] && mul=192
[ "$bas" -eq "8" ] && bas=7
[ "$bas" -gt "8" ] && mul=255
a="$(( (bas&1) *mul ))"
b="$(( ((bas&2)>>1)*mul ))"
c="$(( ((bas&4)>>2)*mul ))"
printf 'dec= %3s basic= #%02x%02x%02x\n' "$dec" "$a" "$b" "$c"
elif [ "$dec" -gt 15 ] && [ "$dec" -lt 232 ]; then
b=$(( (dec-16)%6 )); b=$(( b==0?0: b*40 + 55 ))
g=$(( (dec-16)/6%6)); g=$(( g==0?0: g*40 + 55 ))
r=$(( (dec-16)/36 )); r=$(( r==0?0: r*40 + 55 ))
printf 'dec= %3s color= #%02x%02x%02x\n' "$dec" "$r" "$g" "$b"
else
gray=$(( (dec-232)*10+8 ))
printf 'dec= %3s gray= #%02x%02x%02x\n' "$dec" "$gray" "$gray" "$gray"
fi
}
for i in $(seq 0 255); do
tohex ${i}
done
এটি হিসাবে ব্যবহার করুন ("প্রাথমিক" প্রথম 16 টি রঙ, "রঙ" প্রধান গ্রুপ, "ধূসর" শেষ ধূসর রঙ):
$ tohex 125 ### A number in range 0-255
dec= 125 color= #af005f
$ tohex 6
dec= 6 basic= #008080
$ tohex 235
dec= 235 gray= #262626