# 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))"` }