這裏是我寫的腳本,但它似乎有問題,而!而假設將K的內容與SDATE進行比較,並且在它們不相等的情況下進入循環!while while循環的問題
for d in \
$(sed -nre 's/.*\[(..)\/(...)\/(....):(..:..:..) .*/\1 \2 \3 \4/p' thttpd.log | date +%s -f-);
do echo $d >s1; done
time=$(expr 60 \* 60 \* 24 \* 5)
EDATE=`tail -1 s1`
SDATE=$[$EDATE - $time]
time=$(expr 60 \* 60 \* 24 \* 5)
EDATE=`tail -1 s1`
SDATE=$[$EDATE - $time]
k=`tail -1 s1`
echo $k
echo $SDATE
while [$k -ne $SDATE](k and SDATE contain numbers)
do
k=`tail -1 s1`
sed '1d' <s1> tempfile
mv s1 s1.old
mv tempfile s1
echo $K| awk '{print strftime("%d/%m/%Y:%T",$1)}'|tee -a ass
done
仍然有問題! k是1041454521 SDATE是1041022521和錯誤 ./10:線14:[[1041454521:未找到命令 – matarsak
一個支架就足夠了。重要的是[之前]和之後的空間。 [另一種編寫「測試」的方式,例如:while test「$ k」!=「$ DATE」;做... –
嗯。我總是被教導使用兩個括號,因爲'[''保證是內建的,而'['可能是一個外部程序(因此較慢)。還有一些我忘記的微妙之處。 – Thomas