它幾乎檢查文件'ok.temp'是否存在。如果它沒有進入睡眠循環2秒鐘,然後再次檢查。在文件被認爲存在後,它會繼續。儘管文件存在於bash中
不幸的是,我發現了下面的代碼下面陳述的錯誤:
#!/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 -eq $ rSaved]
line 52: [: too many arguments
任何幫助,將不勝感激:)
哪些是第43和52行? (tl; dr) –
剛編輯+添加:) – Linky
請至少替換導致錯誤的行。否則,有人想看到他們必須點擊「編輯」鏈接。您的問題和下面的答案可能會使通過搜索來到此問題的其他人受益。 –