Voglio che uno script venga sospeso a meno che un determinato file non venga modificato/eliminato (o un file creato in una determinata directory, o ...). È possibile ottenere questo risultato in modo elegante? La cosa più semplice che mi viene in mente è un loop che dorme per un po' prima di ricontrollare lo stato, ma forse c'è un modo più elegante?
Risposta accettata:
Su Linux, puoi usare inotify
del kernel caratteristica. Gli strumenti per lo scripting possono essere trovati lì:inotify-tools.
Esempio di utilizzo da wiki:
#!/bin/sh
EVENT=$(inotifywait --format '%e' ~/file1) # blocking without looping
[ $? != 0 ] && exit
[ "$EVENT" = "MODIFY" ] && echo 'file modified!'
[ "$EVENT" = "DELETE_SELF" ] && echo 'file deleted!'
# etc...