Linux, поиск файла в директории

Рейтинг: 2Ответов: 0Опубликовано: 03.06.2023

Имеется директория, в которой в процессе работы сторонней программы в какой-то момент должен появиться файл 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 все еще присутствует).

Не понимаю, что я делаю не так...

Ответы

Ответов пока нет.