#!/bin/bash # https://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html # https://gist.github.com/XVilka/8346728#gistcomment-3528771 T='::' # The test text function echo_block() { local fs=$1 local bs=$2 echo " 01234567" for (( f = 0; f < 8; f++ )); do echo -en " ${f} " for (( b = 0; b < 8; b++ )); do echo -en "\033[38;5;$((fs+f))m\033[48;5;$((bs+b))m$T\033[0m"; done echo done } function print_colors() { local c for (( c = $1; c < $1 + $2; c++)); do echo -en "\033[48;5;${c}m$T\033[0m" done echo } function colors() { print_colors 0 8 print_colors 8 8 for (( c = 16; c < 256 - 24; c += 36 )); do print_colors $c 36 done print_colors $((256 - 24)) 24 } function true_colors() { awk -v term_cols="${width:-$(tput cols || echo 80)}" 'BEGIN{ s="/\\"; for (colnum = 0; colnum255) g = 510-g; printf "\033[48;2;%d;%d;%dm", r,g,b; printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b; printf "%s\033[0m", substr(s,colnum%2+1,1); } printf "\n"; }' } colors true_colors