2011-05-04 129 views
0

目前,我的腳本下載html頁面的源代碼並將其保存爲plist,它檢查plist和模板文件的SHA哈希,如果哈希不同,它將會擦除一些東西在plist,否則它退出。實現一種無限while循環

我想實現的是一種無限的while循環。儘管SHA哈希值相同,但它會再次下載html源代碼,檢查SHA哈希值,以及何時檢測到SHA哈希值不同,它會刪除plist中的某些密鑰。

#!/bin/sh 

file="https://stackoverflow.com/a/path/file" 

a="Key1" 
b="Key2" 
c="Key3" 
d="Key4" 

declare -a array=($a $b $c $d); 

cd /a/path 
if [ ! -e $file.plist ]; then 
curl http://something.com/ > file.plist 
fi 

new=`shasum file.plist` 
old=`shasum orig_file.plist` # this is a template file. 


if [ "$old" != "$new" ]; then 

echo "Hash mismatch !" 

for i in "${array[@]}" 
do 
defaults delete $file $i 
done 
else 
exit 0 
fi 

回答

3

你真正應該做的是用cron項。無限循環是邪惡的。

+1

的Cron需要鎖定文件處理額外工作以避免重複的同時運行。 – ceving 2011-05-04 14:35:05

+0

是的,這不是什麼大不了的事。 – tamasgal 2011-05-04 14:49:36

2

這是一個無限循環:

while sleep 1 
do 
    perform_check 
done 
2

這是有道理的,如果遙控器是隻下載文件的新版本更新:

$捲曲http://something.com/ -o file.plist -z file.plist