You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
1.8 KiB
99 lines
1.8 KiB
#!/bin/bash |
|
# |
|
# This file echoes a bunch of 24-bit color codes |
|
# to the terminal to demonstrate its functionality. |
|
# The foreground escape sequence is ^[38;2;<r>;<g>;<b>m |
|
# The background escape sequence is ^[48;2;<r>;<g>;<b>m |
|
# <r> <g> <b> range from 0 to 255 inclusive. |
|
# The escape sequence ^[0m returns output to default |
|
|
|
setBackgroundColor() |
|
{ |
|
echo -en "\x1b[48;2;$1;$2;$3""m" |
|
} |
|
|
|
resetOutput() |
|
{ |
|
echo -en "\x1b[0m\n" |
|
} |
|
|
|
# Gives a color $1/255 % along HSV |
|
# Who knows what happens when $1 is outside 0-255 |
|
# Echoes "$red $green $blue" where |
|
# $red $green and $blue are integers |
|
# ranging between 0 and 255 inclusive |
|
rainbowColor() |
|
{ |
|
let h=$1/43 |
|
let f=$1-43*$h |
|
let t=$f*255/43 |
|
let q=255-t |
|
|
|
if [ $h -eq 0 ] |
|
then |
|
echo "255 $t 0" |
|
elif [ $h -eq 1 ] |
|
then |
|
echo "$q 255 0" |
|
elif [ $h -eq 2 ] |
|
then |
|
echo "0 255 $t" |
|
elif [ $h -eq 3 ] |
|
then |
|
echo "0 $q 255" |
|
elif [ $h -eq 4 ] |
|
then |
|
echo "$t 0 255" |
|
elif [ $h -eq 5 ] |
|
then |
|
echo "255 0 $q" |
|
else |
|
# execution should never reach here |
|
echo "0 0 0" |
|
fi |
|
} |
|
|
|
for i in `seq 0 127`; do |
|
setBackgroundColor $i 0 0 |
|
echo -en " " |
|
done |
|
resetOutput |
|
for i in `seq 255 128`; do |
|
setBackgroundColor $i 0 0 |
|
echo -en " " |
|
done |
|
resetOutput |
|
|
|
for i in `seq 0 127`; do |
|
setBackgroundColor 0 $i 0 |
|
echo -n " " |
|
done |
|
resetOutput |
|
for i in `seq 255 128`; do |
|
setBackgroundColor 0 $i 0 |
|
echo -n " " |
|
done |
|
resetOutput |
|
|
|
for i in `seq 0 127`; do |
|
setBackgroundColor 0 0 $i |
|
echo -n " " |
|
done |
|
resetOutput |
|
for i in `seq 255 128`; do |
|
setBackgroundColor 0 0 $i |
|
echo -n " " |
|
done |
|
resetOutput |
|
|
|
for i in `seq 0 127`; do |
|
setBackgroundColor `rainbowColor $i` |
|
echo -n " " |
|
done |
|
resetOutput |
|
for i in `seq 255 128`; do |
|
setBackgroundColor `rainbowColor $i` |
|
echo -n " " |
|
done |
|
resetOutput |
|
|
|
|