created: 2019-10-23T06:25:01.000Z

watchで出力が変化したら通知が欲しい

watchコマンドにはエラー時にビープするオプションはあるが、コマンドが正常終了した場合にビープして気がつく手段がないのでそれをなんとかする

mac/iterm2の設定

通知の設定をONにしておく

  • Profile
    • Terminal
      • Notification Center

貼り付けた画像_2019_10_23_15_14

watch側のコマンド

60ごとにコマンドを実行して結果を監視したい場合はこんな感じ

$ watch --chgexit --interval 60 {{ コマンド }} && perl -E 'say "\007"'

--chgexit

出力が変化したらwatchコマンドを終了する

--interval 60

60ごとにコマンドを実行する

perl -E 'say "\007"'

macでビープ音を出すためのコマンド
好みでsayなどを使ってもよい

動作確認

macのitermで beep/chgexit がどんな感じになるか確認する

watchでlsファイルさせて、途中でみてるファイルに書き込みを行う

$ watch --chgexit --interval 4 "ls -laGh /tmp/_" && perl -E 'say "\007"'
$ echo "hello" >> /tmp/_

こんな感じで通知が得られる

image