inotifywait はエッジトリガなので、待ち始める直前にファイルを作られると詰む。
inotifyfilewait (){ FILENAME="$1" DIRNAME=`dirname $FILENAME`/ while [ ! -f $FILENAME ]; do inotifywait -q -e CREATE -t 1 $DIRNAME >/dev/null done }
使い方:指定したファイルが出来るまで待つ。取りこぼしは1秒で回復。
$ inotifyfilewait hoge.txt
- -q
- 静かにする。これをつけないと、開始と終了のメッセージがうるさい。
- -e CREATE
- ファイル作成だけ待つ
- -t 1
- 1秒でタイムアウトする
- >/dev/null
- ファイルが出来たときのメッセージを表示しない
inotify で Linux ファイルシステムのイベントを監視する
# apt-get install inotify-tools