Реализация своего рода бесконечного цикла while - PullRequest
0 голосов
/ 04 мая 2011

В настоящее время мой скрипт загружает исходный код html-страницы и сохраняет его в виде plist, он проверяет хэш SHA как plist, так и файла шаблона, если хеши отличаются, он удаляет некоторые вещи в plist, в противном случаеон выходит.

Я хотел бы реализовать своего рода бесконечный цикл while.Хотя хэши SHA одинаковы, он снова загружает исходный код html, проверяет хэши SHA и, когда обнаруживает, что хэши SHA отличаются, стирает некоторые ключи в списке.

 #!/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 ]

3 голосов
/ 04 мая 2011

Вы действительно должны сделать это с помощью записи cron. бесконечные петли являются злом.

2 голосов
/ 04 мая 2011

Имеет смысл загружать новую версию файла только в том случае, если пульт дистанционного управления новее:

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

2 голосов
/ 04 мая 2011

Это бесконечный цикл:

while sleep 1
do
  perform_check
done
...