概要
ターミナル上でファイル更新をキャッチして、指定コマンドを実行してくれるスクリプト
参考
参考というかほぼこれの転載、プラス前後の手順
http://mizti.hatenablog.com/entry/2013/01/27/204343
前提
- シェルスクリプトが実行できる環境
手順
1.シェルスクリプト作成
適当なディレクトリで
vi watch.sh
watch.sh
#!/bin/sh
if [ $# -ne 2 ]; then
echo "実行するには2個の引数が必要です。
第一引数: 監視対象ファイル名
第二引数: 監視対象ファイルが更新された際に実行されるコ>マンド
例: ./autoexec.sh a.cpp 'g++ a.cpp && ./a.cpp'"
exit 1
fi
echo "監視対象 $1"
echo "実行コマンド $2"
INTERVAL=1 #監視間隔, 秒で指定
last=`ls --full-time $1 | awk '{print $6"-"$7}'`
while true; do
sleep $INTERVAL
current=`ls --full-time $1 | awk '{print $6"-"$7}'`
if [ $last != $current ] ; then
echo ""
echo "updated: $current"
last=$current
eval $2
fi
done
シェルスクリプト実行用の権限付与(いらないかも?)
chmod u+x watch.sh
2.完成
実行してみる
./watch.sh test.php "php test.php"
優秀すぎる、、、ありがとう、、、
http://mizti.hatenablog.com/entry/2013/01/27/204343
のかた、、、
継続的に使うというよりは、突然監視のニーズがあったときに便利