特定のファイルが変更/削除されない限り(または特定のディレクトリに作成されたファイル、または…)、スクリプトをスリープ状態にしたい。これはエレガントな方法で達成できますか?私の頭に浮かぶ最も簡単なことは、ステータスを再度確認する前にしばらくスリープするループですが、もっとエレガントな方法があるのではないでしょうか?
承認された回答:
Linuxでは、カーネルのinotify
を使用できます 特徴。スクリプト用のツールは、inotify-toolsにあります。
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...