Прийнята відповідь справді працює (спасибі maxschlepzig), але залишає моніторинг inotifywait у фоновому режимі, поки ваш сценарій не вийде. Єдиною відповіддю, яка відповідає точно вашим вимогам (тобто очікування, щоб sleep.txt з'явився всередині / tmp), здається, є Стефаном, якщо каталог, який слід контролювати за допомогою inotifywait, буде змінено з крапки (.) На '/ tmp'.
Тим НЕ менше, якщо ви готові використовувати тимчасовий каталог тільки для розміщення вашого прапора sleep.txt і можете посперечатися , що ніхто ще будете помістити будь-який файл в цьому каталозі, просто просимо inotifywait дивитися цей каталог для файлів створення буде досить:
1-й крок: створити каталог, який ви будете контролювати:
directoryToPutSleepFile=$(mktemp -d)
Другий крок: переконайтеся, що каталог справді є
until [ -d $directoryToPutSleepFile ]; do sleep 0.1; done
3-й крок: зачекайте, поки ВСЕ. Файл з’явиться всередині $directoryToPutSleepFile
inotifywait -e create --format '%f' --quiet $directoryToPutSleepFile
Файл, який ви $directoryToPutSleepFileвведете, можна назвати sleep.txt awake.txt, як би там не було. У момент, коли будь-який файл буде створений у $directoryToPutSleepFileвашому сценарії, він продовжить минуле inotifywaitоператора.
$MAILPATH.