2011-05-04 12 views
0

현재, 내 스크립트는 HTML 페이지의 소스 코드를 다운로드하여 plist로 저장하고, plist와 템플릿 파일의 SHA 해시를 확인하며, 해시가 다르면 지우기 plist의 일부 물건. 그렇지 않으면 빠져 나간다.일종의 무한 루프 수행하기

구현하고자하는 것은 무한 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

크론은 잠금 파일 처리를위한 추가 작업이 필요 동시 실행 중복을 피하기 위해 – ceving

+0

예, 큰 문제는 아닙니다. – tamasgal

2

이 무한 루프입니다 :

while sleep 1 
do 
    perform_check 
done 
2

그것은 원격 인 경우에만 파일의 새 버전을 다운로드하는 것이 합리적 새로운 :

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