プログラミング

Bash コマンドが終了したらtelegram経由でデスクトップに通知する

Linuxパソコン・サーバーのコマンドラインやWSLにおいて、Bashコマンドが終了したらtelegram経由でデスクトップに通知する方法について紹介します。
バッググラウンドでコマンド実行して終了したらデスクトップにポップアップ通知してほしいなと思っていて、僕は普段Windowsの通知 – chromeとかその他アプリから来る一般的な通知 – は全部オフにしているので、telegramを通して通知をさせたいと思います。

telegramを通さないで通知をする場合は、powershellかJavaかC#あたりでバルーン通知の方法をググって頂ければ早いかと思います。


push(){
  command="$@"
  eval " ${command} ; errorCode=\$? " ; telegram-sendMessage "Command finished: ${command} / ErrorCode: ${errorCode}" >&/dev/null
}

Telegram APIでUbuntu BashからcurlコマンドでTelegramにメッセージを送信する

telegram-sendMessage(){
  curl -s -X POST "https://api.telegram.org/${TELEGRAM_API_KEY}/sendMessage" -d chat_id=638365737 -d text="${1:-Hello World}"
}

使用例

push sleep 3 ; echo hoge

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_11ccca5d-615b-403a-96e1-4e426e1cd2c5.png

push "sleep 3 ; echo hoge"

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_72dd3a06-798a-4538-8120-b7ae6b12eefc.png

push sleep 3 &

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_a2766f70-e350-42b2-aac0-8baba43bb096.png

push undefinedfunc

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_9a673841-9328-46ae-8dc7-8da206ae2de2.png

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です