Macでコマンド実行が終わったら教えてほしい時、あるいはCLI上でリマインドをセットしたい時のTips


このTipsの利用シーン

※Mac前提です

  • CLIでビルドしているがビルド時間が数十分かかって待ち時間がムダ。ただ、ビルドが終わったらすぐに気付きたい
  • CLI上で3分、10分とかのリマインドをしたい

動作環境

macOS Big Sur(11.2.3)

AppleScriptを使えば通知できます

AppleScriptを使えばMac上で通知を表示させることができます。
また、AppleScriptを呼び出すためのosascriptが用意されているので、そちらを使えばCLI上から通知を表示させることができます。

やり方

通知用の関数を用意する

.bashrc.zshrc に関数を追加します。
(ここでは.bashrcのケースで記載しています)

.bashrcを開いて、

vi ~/.bashrc

↓の関数を追記して、

.~/bashrc
function remind() { # 関数名は好きにいじってください
  description="通知です" # デフォルトの文字は好きにいじってください
  if [ $# != 0 ]; then
    description=$1
  fi
  command /usr/bin/osascript -e "display notification \"$description\" with title \"Remind🔥\"" # タイトルも好きにいじってください
}

反映する

source ~/.bashrc

あとは呼び出すだけ

作成した関数を呼び出すだけです。
※関数名を変更した場合はこちらも適宜読み替えてください

# デフォルト通知
remind
# 任意のメッセージを表示
remind 任意のメッセージ

無事通知されましたね!

利用シーン

実行時間の長いシェルの完了を通知させたい時

shellの後にremindをつけるだけ

sh 実行時間の長いシェル.sh; remind Shellの実行が完了しました

カップラーメンを待ちたい時

sleepの後にremindをつけるだけ

sleep 180; remind 時間だよ

参考にさせて頂いた記事

ムダな時間を減らして頂きありがとうございます