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