Sida 1 av 1

Hantera temperaturer med bash.

Postat: 05 aug 2009, 02:38
av Plutonium
Hej.
Har lite problem att behandla mina temp värden som givarna ger, vad som händer är att koden avrundar inte decimalerna utan bara heltal, 24,00 , 25,00 , 26,00 ,etc.

Jag använder mig av samma kod som de flesta här på forumet, så jag ser ingen logik i det heller.

Kod: Markera allt

VINDEN=`cat /mnt/1wire/10.2A7A7C010800/temperature|sed -e s/" "//g|awk ' {$1=$1 + 0.005;printf "%.2f", $1} '`

                # VINDEN
           
                VINDEN_INT=${VINDEN/.*}
        if [[ $VINDEN_INT -ne 85 ]]; then
           
           $MYSQL "INSERT INTO vinden (temp) VALUES ('$VINDEN')"
        
        else
           echo "No Feed vinden" &>/dev/null
           echo "Error" &>/dev/null
        fi



Hoppas någon kan se vad felet kan vara..

Mvh
Anders

Re: Hantera temperaturer med bash.

Postat: 05 aug 2009, 07:09
av elf98
Jag ser inte något uppenbart fel.

är du säker på att det är bash som ställer till det och inte mysql?

Re: Hantera temperaturer med bash.

Postat: 27 nov 2009, 14:41
av gusse02
Jag ser felet! Problemet är med "locale". Antagligen har du en svensk miljö som förväntar sig decimalkomma men tyvärr levererar OWFS decimalpunkt. Detta kan man lätt tackla genom att ändra locale. Skriv "LANG= " framför awk så sätts locale till default för innevarande shell-kommando. OBS blanksteg efter likamed-tecknet.