目前,我的脚本会下载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
答案 0 :(得分:3)
你真的应该用cron条目做到这一点。无限循环是邪恶的。
答案 1 :(得分:2)
这是一个无限循环:
while sleep 1
do
perform_check
done
答案 2 :(得分:2)
如果遥控器是新的,只下载新版本的文件是有意义的:
$ curl http://something.com/ -o file.plist -z file.plist