Skip to content

Instantly share code, notes, and snippets.

@sfate
Forked from mhulse/fromhex.bash
Created March 13, 2024 22:15
Show Gist options
  • Save sfate/0cd1566e719d3074857758e7c9b1f08b to your computer and use it in GitHub Desktop.
Save sfate/0cd1566e719d3074857758e7c9b1f08b 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