La respuesta aceptada realmente funciona (gracias maxschlepzig) pero deja el monitoreo de inotifywait en segundo plano hasta que se cierra el script. La única respuesta que coincide exactamente con sus requisitos (es decir, esperar a que se muestre sleep.txt dentro de / tmp) parece ser la de Stephane, si el directorio a ser monitoreado por inotifywait cambia de punto (.) A '/ tmp'.
Sin embargo, si está dispuesto a usar un directorio temporal SOLAMENTE para colocar su bandera sleep.txt y puede apostar a que nadie más colocará ningún archivo en ese directorio, solo pedirle a inotifywait que vea este directorio para crear archivos sería suficiente:
1er paso: crea el directorio que monitorearás:
directoryToPutSleepFile=$(mktemp -d)
2do paso: asegúrese de que el directorio esté realmente allí
until [ -d $directoryToPutSleepFile ]; do sleep 0.1; done
3er paso: espere hasta que CUALQUIER archivo aparezca dentro $directoryToPutSleepFile
inotifywait -e create --format '%f' --quiet $directoryToPutSleepFile
El archivo que colocará $directoryToPutSleepFile
puede llamarse sleep.txt awake.txt, lo que sea. En el momento en que se cree un archivo dentro de $directoryToPutSleepFile
su script, continuará más allá de la inotifywait
declaración.
$MAILPATH
.