实现一种无限的while循环

时间:2011-05-04 07:37:06

标签: macos bash curl while-loop

目前,我的脚本会下载html页面的源代码并将其保存为plist,它会检查plist和模板文件的SHA哈希值,如果哈希值不同,则会删除plist中的某些内容,否则它会退出。

我想要实现的是一种无限循环。虽然SHA哈希是相同的,但它会再次下载html源代码,检查SHA哈希值,当它检测到SHA哈希值不同时,它会删除plist中的某些键。

 #!/bin/sh

 file="/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 个答案:

答案 0 :(得分:3)

你真的应该用cron条目做到这一点。无限循环是邪恶的。

答案 1 :(得分:2)

这是一个无限循环:

while sleep 1
do
  perform_check
done

答案 2 :(得分:2)

如果遥控器是新的,只下载新版本的文件是有意义的:

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