LoginSignup
13
11

More than 5 years have passed since last update.

ターミナルでサクッとファイル監視して自動実行させるスクリプト

Posted at

概要

ターミナル上でファイル更新をキャッチして、指定コマンドを実行してくれるスクリプト

参考

参考というかほぼこれの転載、プラス前後の手順
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"

image.png

優秀すぎる、、、ありがとう、、、
http://mizti.hatenablog.com/entry/2013/01/27/204343
のかた、、、

継続的に使うというよりは、突然監視のニーズがあったときに便利 :raised_hands:

13
11
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
11