From 56f510774785cb69381964f8a86c08eed2b938c4 Mon Sep 17 00:00:00 2001 From: saundersp Date: Sat, 26 Apr 2025 20:07:43 +0200 Subject: [PATCH] colours.sh : Added RGB and rainbow colour gradients --- colours.sh | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/colours.sh b/colours.sh index 793faf6..6e8d583 100755 --- a/colours.sh +++ b/colours.sh @@ -32,3 +32,44 @@ for fgc in {30..37}; do done echo; echo done + +rainbowColor() { + local h=$(($1 / 43)) + local f=$(($1 - 43 * h)) + local t=$((f * 255 / 43)) + local 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 +} + +rf(){ echo "$1" 0 0; }; gf(){ echo 0 "$1" 0; }; bf(){ echo 0 0 "$1"; } +for f in rf gf bf rainbowColor; do + for s in "$(seq 0 127)" "$(seq 255 -1 128)"; do + for i in $s; do + # shellcheck disable=2183,2046 + printf '\x1b[48;2;%s;%s;%sm ' $($f "$i") + done + echo -en "\x1b[0m\n" + done +done