Uno script veloce veloce che converte i colori da notazione HTML (esadecimale) a RGB e viceversa. Lo script vi propone le due alternative, selezionabili premendo 1 o 2. E’ scritto in bash e gira solo su Linux. Ho testato lo script su MAC OS X ma non funziona, colpa dell’operatore expr
#!/bin/bash #Stampa il menù iniziale clear echo "===HTML to RGB converter===" echo "" echo "1. HTML -> RGB" echo "2. RGB -> HTML" echo "" echo "===========================" #Salva la scelta fatta dall'utente nella variabile menu read menu #Conversione HTML -> RGB if [ $menu -eq "1" ]; then echo "Inserisci il valore del colore in notazione HTML:" #Cattura l'input dell'utente read color_HTML #Trasforma tutti i caratteri in Maiuscolo color_HTML=$(echo $color_HTML | tr '[:lower:]' '[:upper:]') #Divide la stringa per individuare i valori di R,G,B r=$(expr substr $color_HTML 1 2) g=$(expr substr $color_HTML 3 2) b=$(expr substr $color_HTML 5 2) #Converte r,g e b da HEX a DEC r_dec=$(echo "ibase=16; $r" | bc ) g_dec=$(echo "ibase=16; $g" | bc ) b_dec=$(echo "ibase=16; $b" | bc ) echo R: $r_dec G: $g_dec B: $b_dec fi #Conversione RGB -> HTML if [ $menu -eq "2" ]; then #Acquisisce separatamente i valori di R,G,B echo "Inserisci il valore di R:" read r_in echo "Inserisci il valore di G:" read g_in echo "Inserisci il valore di B:" read b_in #Converte r,g e b da DEC a HEX r_hex=$(echo "ibase=10;obase=16; $r_in" | bc ) g_hex=$(echo "ibase=10;obase=16; $g_in" | bc ) b_hex=$(echo "ibase=10;obase=16; $b_in" | bc ) lung_r_hex=$(echo `expr length $r_hex`) lung_g_hex=$(echo `expr length $g_hex`) lung_b_hex=$(echo `expr length $b_hex`) #Se il valore convertito risulta < 2 caratteri aggiunge uno 0 davanti al suo valore if [ $lung_r_hex -lt "2" ]; then r_hex=$(echo "0$r_hex") fi if [ $lung_g_hex -lt "2" ]; then g_hex=$(echo "0$g_hex") fi if [ $lung_b_hex -lt "2" ]; then b_hex=$(echo "0$b_hex") fi echo "HTML:#"$r_hex$g_hex$b_hex fi
X
THE END
THE END