何かのようなもの
$ macwatch dir_or_file cmd_to_execude_when_arg1_is_changed
その間、XMLを書く必要はありません。私は知っています https://stackoverflow.com/questions/1515730/is-there-a-command-like-watch-or-inotifywait-on-the-mac 。これはlaunchdのラッパーにすることができます-上記のコマンドを入力できるようにしたいだけです。
あなたが引用したStackOverflowの質問に別の答えが追加されました-Homebrewにはfswatch
ユーティリティがあります。
fswatch
コマンドは、inotifywatch
ではなく、inotifywait
に似ていることに注意してください。つまり、ファイルの変更をワンショットで待ってから終了するのではなく、変更されたファイルを出力する無限ループに入ります。そのため、Unixパイプで変更をキャッチできます。そうすると、スクリプトは「裏返し」になります。
たとえば、Linuxでは通常、inotifywait
を使用してファイルの変更に対してコマンドを実行するonelinerがあります。
_while true; do inotifywait -q -e modify files... ; my_command; done
_
fswatch
が同じ効果を持つためには、次のことを行う必要があります。
fswatch files... | (while read; do my_command; done)
上記は、コマンドの引数として変更されたファイルが必要ないことを前提としています。必要になった場合は、次のようになります。
fswatch files... | (while read x; do echo $x | xargs my_command; done)
お役に立てれば :)
乾杯