Jawaban yang diterima benar-benar berfungsi (terima kasih maxschlepzig) tetapi membiarkan pemantauan inotifywait di latar belakang hingga skrip Anda keluar. Satu-satunya jawaban yang cocok persis dengan kebutuhan Anda (yaitu menunggu sleep.txt muncul di dalam / tmp) tampaknya adalah milik Stephane, jika direktori yang akan dimonitor oleh inotifywait diubah dari titik (.) Ke '/ tmp'.
Namun, jika Anda bersedia menggunakan direktori sementara SAJA untuk meletakkan flag sleep.txt Anda dan dapat bertaruh bahwa tidak ada orang lain yang akan meletakkan file apa pun di direktori itu, cukup meminta inotifyunggu untuk menonton direktori ini karena kreasi file sudah cukup:
Langkah 1: buat direktori yang akan Anda pantau:
directoryToPutSleepFile=$(mktemp -d)
Langkah 2: pastikan direktori benar-benar ada
until [ -d $directoryToPutSleepFile ]; do sleep 0.1; done
Langkah 3: tunggu sampai file APA SAJA muncul di dalamnya $directoryToPutSleepFile
inotifywait -e create --format '%f' --quiet $directoryToPutSleepFile
File yang Anda masukkan $directoryToPutSleepFile
dapat dinamai sleep.txt awake.txt, apa pun. Saat file apa pun dibuat di dalam $directoryToPutSleepFile
skrip Anda akan terus melewati inotifywait
pernyataan.
$MAILPATH
.