ファイルの変更を監視してコマンドを実行するスクリプト
openssl sha256 コマンドでファイルのハッシュ値を生成し、それが変わっていたら引数で指定したコマンドを実行するスクリプト。
何気に初めて自分で使うためにシェルスクリプトを書きました。
スクリプト
#!/bin/bash function __usage() { cat <<EOS usage: $(basename $0) <target filename> <command> EOS } __check() { echo `openssl sha256 -r $1 | awk '{print $1}'` } if [ $# -ne 2 ]; then __usage exit 1 fi echo "watching: $1" INTERVAL=1 # second last=`__check $1` while true; do sleep $INTERVAL current=`__check $1` if [ "$last" != "$current" ]; then echo 'execute...' eval $2 last=$current echo 'done' fi done
使い方
./watch.sh filename 'command'
ぼくの場合はwebpack --watch
でビルドされたファイルをローカルサーバを立ててる別のディレクトリにコピーして画面に反映させるために使いました。