Script per convertire colori da HTML a RGB e viceversa

http://bit.uz/RHq5
09 Dicembre 2012

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