Created
June 16, 2025 18:09
-
-
Save byates/b6ded34f2c7436cac9898d92abb8a0d1 to your computer and use it in GitHub Desktop.
Revisions
-
byates created this gist
Jun 16, 2025 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,98 @@ #!/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