ファイルが変化した時に実行する
ファイルを保存しておいて diff で比較する。
比較結果を終了ステータスとして返すだけなので、オプションとして -q を渡し、標準出力、エラー出力を/dev/null にリダイレクトする。 ファイルがない場合でも実行されることに注意。(ほとんどの場合は問題ないはず)
一行で判定する場合は、変化時が終了コードが 0 以外になるので、|| でつなぐ
code:sh
diff -q file_name.org file_name >/dev/null 2>&1 || your_command
set -eu でも使えるようにするには、コマンドそのものを if に含める必要がある。
code:sh
if ! diff -q file_name.org file_name >/dev/null 2>&1; then
your_command
fi