ターミナルで処理が終わった際に通知や音を鳴らす
Contents
ターミナル上で少し時間がかかる処理を行っている際、別のアプリを開いたり何か違うことをする場合があると思います。 そんな時に音や通知で処理が終わったことを知れると便利ですね。
音を鳴らす
ターミナルアプリ上から音を鳴らすには afplay
というコマンドを使用できます。
また、beep音だけでいいというなら、 tput bel
も有効です。
System音が既にいくつか用意されているので、以下のコマンドで参照しているディレクトリをみてみると面白いです。 Hero.aiff という音を鳴らすには以下のコマンドを叩きます。
afplay /System/Library/Sounds/Hero.aiff
また、 .zshrc
などのプロファイルに以下のエイリアスを登録しておけば、bellコマンドを実行するだけで音が鳴ります。
alias bell='afplay /System/Library/Sounds/Hero.aiff'
通知を表示する
ターミナルアプリ上から通知を表示するには osascript
というコマンドを使用できます。
以下のコマンドを実行すると、 Terminal
というタイトルで、 Process is done!"
というメッセージが表示されます。
osascript -e 'display notification "Process is done!" with title "Terminal"'
.zshrcにエイリアスを登録するのは文字列区切りのシングルクォートの関係で難しいため、 .zshrcに関数を記述してそれをエイリアスとします。
以下のエイリアスを登録すると、 notify-done
コマンドを実行すると通知が届きます。
_notify-done() {
osascript -e 'display notification "Process is done!" with title "Terminal"'
}
alias notify-done=_notify-done
コマンドが終わった際に音と通知を表示する
コマンドを &&
で繋ぐとコマンドを直列で実行できます。(処理Aが終わったら処理B)
&
で繋ぐと並列になります。(処理Aと処理Bを同時に実行)
echoコマンドの後に音と通知を表示するには以下のコマンドが使えます。
echo "Something text" && (notify-done & bell)