#! /bin/bash # # colortest.bash # A script to ricily display a color palette # Copyright (C) 2019 Vintage Salt # # Distributed under terms of the MIT license. # # Globals teststring="ABC" padding=" " spacer=" " # Derived globals teststringlen="$(( $(wc -m <<< "$teststring") - 1 ))" # $1: Foreground color # $2: Background color printc() { [ -z "$1" ] && return 1 [ -z "$2" ] && return 2 printf "\e[0m\e[$2m\e[$1m$padding$teststring$padding\e[0m" } # $1: Heading printh() { [ -z "$1" ] && return 1 printf "$padding%${teststringlen}s$padding" "$1" printf "$spacer" } println() { printf "\\n" } # Headers printf "%8s$spacer" printh "0m" for (( bg=40; bg<=47; bg++)); do printh "${bg}m" done println # Content for (( fg=30; fg <=37; fg++ )); do for (( bold=0; bold<=1; bold++ )); do headerstring="${fg}m" [ "$bold" == "1" ] && headerstring="$bold;$headerstring" printf "%8s" "$headerstring" printf "$spacer" # No background printc $fg 0 printf "$spacer" # All backgrounds for (( bg=40; bg<=47; bg++)); do printc $fg $bg printf "$spacer" done println done done println