Je veux qu'un script dorme à moins qu'un certain fichier ne soit modifié/supprimé (ou un fichier créé dans un certain répertoire, ou …). Cela peut-il être réalisé d'une manière élégante? La chose la plus simple qui me vient à l'esprit est une boucle qui dort pendant un certain temps avant de vérifier à nouveau l'état, mais peut-être existe-t-il un moyen plus élégant ?
Réponse acceptée :
Sous Linux, vous pouvez utiliser le noyau inotify
fonctionnalité. Des outils de script peuvent y être trouvés :inotify-tools.
Exemple d'utilisation du 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...