Linux, поиск файла в директории
Имеется директория, в которой в процессе работы сторонней программы в какой-то момент должен появиться файл package.lock, играющий роль мьютекса, и сразу после этого папка package.
Пока имеется файл .lock, папку package нельзя использовать, там идет сохранение файлов.
Пишу скрипт на bash, который сначала определит факт наличия папки package, затем будет ждать удаления сторонней программой файла package.lock.
DIR=<my_dir>
LOCK=$DIR.lock
exists=False
locked=True
while [ "$exists" == 'False' ]
do
files=($(ls . ))
if [[ " ${files[*]} " =~ $DIR ]]; then
echo appeared
unset files
break
else
echo still not exists
unset files
sleep 10
fi
done
while [ "$locked" == 'True' ]
do
files=($(ls . ))
if [[ " ${files[*]} " =~ $LOCK ]]; then
echo still locked
unset files
sleep 10
else
echo unlocked
unset files
break
fi
done
На этапе тестирования делаю следующее: запускаю этот скрипт в пустой директории, он мне с периодичностью 10 сек пишет, что папки package нет, потом я создаю файл package.lock и скрипт мне выдает, что директория появилась, но еще не разблокирована (не разблокирована - значит, что файла package.lock все еще присутствует).
Не понимаю, что я делаю не так...