Принятый ответ действительно работает (спасибо maxschlepzig), но оставляет мониторинг inotifywait в фоновом режиме, пока ваш скрипт не завершится. Единственный ответ, который точно соответствует вашим требованиям (т.е. ожидание появления sleep.txt внутри / tmp), кажется, что это Стефан, если каталог, который будет отслеживаться inotifywait, изменяется с точки (.) На '/ tmp'.
Однако, если вы хотите использовать ТОЛЬКО временный каталог для установки вашего флага sleep.txt и можете поспорить, что никто не будет помещать в него какие-либо файлы, достаточно просто попросить inotifywait просмотреть этот каталог для создания файлов:
1-й шаг: создайте каталог, который вы будете отслеживать:
directoryToPutSleepFile=$(mktemp -d)
2-й шаг: убедитесь, что каталог действительно есть
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
.