Skip to content

Instantly share code, notes, and snippets.

@attomos
Forked from mhulse/fromhex.bash
Created November 10, 2020 03:08
Show Gist options
  • Save attomos/374ffcadbbec833e33bcfb21dd6d4eda to your computer and use it in GitHub Desktop.
Save attomos/374ffcadbbec833e33bcfb21dd6d4eda to your computer and use it in GitHub Desktop.
Bash function to convert hex to 256 terminal color.
# fromhex A52A2A
# fromhex "#A52A2A"
# BLUE_VIOLET=$(fromhex "#8A2BE2")
# http://unix.stackexchange.com/a/269085/67282
function fromhex() {
hex=$1
if [[ $hex == "#"* ]]; then
hex=$(echo $1 | awk '{print substr($0,2)}')
fi
r=$(printf '0x%0.2s' "$hex")
g=$(printf '0x%0.2s' ${hex#??})
b=$(printf '0x%0.2s' ${hex#????})
echo -e `printf "%03d" "$(((r<75?0:(r-35)/40)*6*6+(g<75?0:(g-35)/40)*6+(b<75?0:(b-35)/40)+16))"`
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment