Sitter och kodar ett shell script som skall övervaka entré dörren och det kommer att skicka ett sms till mig dörren låses upp på oönskad tid mm..
Dock har jag ett problem.
Nu är inte detta renskrivet skall väl tillläggas, men det funkar till stora drag förutom en sak

Variablern $TEST får helt fel värde, antingen blandar dom ihop sig eller så får jag ett sms med båda värden i.. Förstår inte riktigt hur detta är möjligt, dom ligger ju i en if sats där det är antingen eller (inte båda eller fel) som det är i mitt fall

Kod: Markera allt
#!/bin/bash
# Mysql
USER="1wire"
PASSWD="*****"
DB="1wire"
MYSQL="mysql -u $USER -p$PASSWD -D $DB -e"
# Första argumentet i funktionen är första ordet i filen (nytt värde)
function reagera {
if [ ${1} -eq 0 ]; then
echo "Låst"
$MYSQL "INSERT INTO entredoor (status) VALUES ('låst')"
TEST="låst"
else
echo "Upplåst!"
$MYSQL "INSERT INTO entredoor (status) VALUES ('upplåst')"
TEST="upplåst"
fi
}
function smslarm {
if [ "$LARM_VALUE" -eq 1 ]; then
echo -e "subject:$(date)\n Entre dörren är nu "$TEST | sendmail -f Vakt@Home.nu 07******@sms.comviq.se
fi
}
# Inte lämna skräfiler kvar
function cleanup {
rm "$TEMPFIL"
exit 0
}
# Första argumentet måste vara en fil
[ -z "$1" -o ! -f "$1" ] && echo "overvakning.sh <fil>" && exit 1
FIL=$1
TEMPFIL=$(tempfile)
# Hantera ^C och dylikt
trap cleanup SIGHUP SIGINT SIGTERM
cp "$FIL" "$TEMPFIL"
while /bin/true; do
# Kollar värdet sms alarm
ROWS=`$MYSQL "SELECT value FROM settings WHERE setting='smsalarm'"`
LARM_VALUE=$(echo $ROWS | cut -f2 -d' ')
# Se efter om den gamla kopian skiljer sig från den nuvarande filen
diff -qs $FIL $TEMPFIL &>/dev/null
[ $? -ne 0 ] && smslarm && reagera $(cat $FIL | cut -d " " -f 1)
cp "$FIL" "$TEMPFIL"
sleep 1
done
Någon som känner sig manad att hjälpa mig?