そこで、単純なinotifywait
ループを実行して、Bootstrapディレクトリの変更を監視しています。
while inotifywait -r -q --format %w bootstrap/; do
echo "something happened"
[[ $filename == *.js ]] && uglifyjs .....
[[ $filename == *.less ]] && lessc bootstrap.less
done
内部について心配する必要はありませんが、ファイル名をbashスコープに戻すことはできません。 inotifywait
は(format引数の助けを借りて)ファイル名をエコーアウトしますが、それをキャプチャして後で使用するにはどうすればよいですか(私の場合、$filename
として)?
シンプルで短いテストハーネスが必要な場合:
touch testfile
while inotifywait testfile do; echo "..."; done
そして、トリガーしたいときにtouch testfile
を実行するだけです。
よりクリーンな方法は このブログエントリ に示されています。
inotifywait -m -r -q --format '%w' bootstrap/ | while read FILE
do
echo "something happened on path $FILE"
done
while
の出力をキャプチャするために、inotifywait
を再構築する必要がありました。
while true; do
echo "something happened"
filename=$(inotifywait -r -q --format %w bootstrap/)
[[ $filename == *.js ]] && uglifyjs .....
[[ $filename == *.less ]] && lessc bootstrap.less
done
これを行うためのよりクリーンな方法があるかどうかを知りたいと思っています。