Ubuntu(やその派生ディストリビューション)でコマンドが終了したことを通知する

1 min read読了の目安(約1300字

ポップアップ通知

デスクトップ環境がUbuntuの場合は、コマンドでターミナルからポップアップ通知を表示させることができます。

notify-send "12時です" "お昼ゴハンの時間ですYo!!"

私の環境 (ZorinOS 15.3) ではこういう通知が表示されます。

notify-send-popup

(ダークモードなので視認性があまり良くない)

詳細はmanpageをご覧ください。

http://manpages.ubuntu.com/manpages/xenial/man1/notify-send.1.html

シェルスクリプトでコマンドの終了を通知させる

ターミナルでコマンドを実行した後に、他の作業をしているとコマンドが完了するまで何度もターミナルと行き来することになります。

コマンドが完了したことをポップアップ通知で確認できれば、ターミナルと行き来しなくても良くなりそうです。

_n というコマンドを自作してみます。

bash

~/.bashrc に以下の関数を追記します。

function _n() {
  $*
  if [ $? -eq 0 ]; then
    notify-send -u normal "task finished." "$*"
  else
    notify-send -u critical "error occurred." "$*"
  fi
}

fish

~/.config/fish/functions/_n.fish ファイルを新規作成して、以下の関数を記述します。

function _n
  if $argv
    notify-send -u normal "task finished." "$argv"
  else
    notify-send -u critical "error occurred." "$argv"
  end
end

_n コマンドの簡単な説明

_n の後に実行したいコマンドを指定します。

$ _n sleep 1

success_n sleep 1

エラーが発生するとアイコンが赤くなります。

$ _n false

error_n_false

これでちょっとだけ作業のストレスが減りました。