Как я могу наблюдать за созданием определенного «триггерного файла»?

Мне нужно создать сценарий оболочки, который start приложение, когда файл с именем start создается в определенном каталоге.

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

One Solution collect form web for “Как я могу наблюдать за созданием определенного «триггерного файла»?”

Если ваша система имеет inotifywait (большинство дистрибутивов Linux, OpenBSD и, возможно, другие), как отмечают другие, наименее ресурсоемкий подход заключается в использовании inotifywait :

 rm -f yourdirectory/start while [ "$(inotifywait -e create -q --format %f yourdirectory)" != "start" ]; do :; done yourcommand 

Это гарантирует, что yourdirectory файл будет удален из yourdirectory , затем дождитесь его создания, а затем запустите yourcommand . -e create указывает, что нас интересуют только события создания, -q указывает, что нам не нужны диагностические сообщения inotifywait , а --format %f указывает, что мы хотим видеть имя созданного файла в выводе.

Если у вас нет inotifywait , будет работать и следующее: с задержкой не более одной секунды:

 rm -f yourdirectory/start while [ ! -e yourdirectory/start ]; do sleep 1; done yourcommand 
  • Как удалить. с начала строки Bash и записать результат в переменную?
  • изменение формата даты в команде awk
  • GNU parallel vs & (я имею в виду фон) vs xargs -P
  • Может ли касификация case bash?
  • Как получить двоичные представления строк в Shell?
  • Как использовать отрицание команды в цикле while с grep в сценарии оболочки?
  • Как сравнить день недели?
  • Сценарий оболочки, чтобы найти, какой пакет предоставляет файл на OpenBSD
  • Как переименовать несколько файлов, добавив общую строку в начале файлов?
  • Как предварительно загружать мой .so каждый раз, когда приложение выполняется?
  • Удалять файлы в каталоге, которые также находятся в другом каталоге
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.