基本上它检查文件是否存在 ok. temp 。 如果它存在 。 如果它存在的话, 它会在重新检查之前进入一个两秒钟的睡眠循环。 在文件被认为存在之后, 它会继续 。
不幸的是,我收到以下错误的代码:
#!/bin/sh
# Read the sensor values
if [ ! -f saved.txt ]
then
touch saved.txt
fi
#saved values count
sCount=0
#value aggregates
vTTemp=0
vTHumid=0
vTLux=0
#previous aggregates
pTTemp=0
pTHumid=0
pTLux=0
while :
do
vTemp=0
vHumid=0
vLux=0
if [ $sCount -gt 0 ]
then
if [ $(( $sCount % 5 )) -eq 0 ]
then
#set previous aggregates as current
pTTemp=$vTTemp
pTHumid=$vTHumid
pTLux=$vTLux
#reset current aggregates
vTTemp=0
vTHumid=0
vTLux=0
fi
fi
while [ ! –f ok.temp ]
do
sleep 20
done
if [ -f logfile.txt ]
then
rResult=`tail -1 logfile.txt`
rSaved=`tail -1 saved.txt`
if [ $rResult -eq $rSaved ]
then
vTemp=`echo $rResult | cut -d" " -f1`
vHumid=`echo $rResult | cut -d" " -f2`
vLux=`echo $rResult | cut -d" " -f3`
echo $rResult >> saved.txt
# aggregate results
vTTemp=`expr $vTTemp + $vTemp`
vTHumid=`expr $vTHumid + $vHumid`
vTLux=`expr $vTLux + $vLux`
echo Most recent results recieved from sensor has been saved
else
echo Most recent result has already been saved, skipping
fi
fi
echo [Previous] Temp: $pTTemp Humid: $pTHumid Lux: $pTLux
echo [Current] Temp: $vTTemp Humid: $vTHumid Lux: $vTLux
sCount=`expr $sCount + 1`
done
我得到了这些错误:
第43行=同时[! -f OK.temp]
line 43: [: f: unary operator expected
第52行 = [$RResult - equal $rSaved]
line 52: [: too many arguments
如有任何帮助将不胜感激:)