激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - Linux使用終端工具給你的電腦發送彈窗提醒!

Linux使用終端工具給你的電腦發送彈窗提醒!

2022-01-07 22:43良許Linux良許 Linux

現在人手一部智能手機,這些智能手機都有個非常實用的功能,那就是彈窗提醒。當我們收到短信,或者微信信息時,手機就會彈窗顯示信息的大致內容。有了這個功能你就不會錯過重要信息了。

Linux使用終端工具給你的電腦發送彈窗提醒!

大家好,我是良許。

現在人手一部智能手機,這些智能手機都有個非常實用的功能,那就是彈窗提醒。當我們收到短信,或者微信信息時,手機就會彈窗顯示信息的大致內容。有了這個功能你就不會錯過重要信息了。

電腦上也有類似的功能,也很實用。但這個功能都是系統級別,我們能不能通過腳本方式去調用這個彈窗功能呢?

答案是肯定的!

例如,當腳本或 cron 任務完成時,長時間運行的編譯任務失敗,或者腳本執行過程中出現緊急問題,這些情況下如果能在電腦上彈出一條提醒,肯定會讓隔壁的美女同事刮目相看!

Linux使用終端工具給你的電腦發送彈窗提醒!

以下代碼已在 Linux 系統上編寫并測試通過,也可以移植到 Mac 電腦上。

從 Linux 終端發送彈窗通知

要從 Linux 終端發送通知,需要使用 notify-send 命令。這個命令大部分發行版都沒有默認安裝,需要我們自行動手。

在 Fedora 上,輸入:

  1. $ sudo dnf install notify-send 

在基于 Debian 的發行版上,鍵入:

  1. $ sudo apt install notify-send 

幾個簡單彈窗通知的例子:

  1. $ notify-send "liangxu is great!!" 
  2. $ notify-send "welcome to liangxu's website" "www.lxlinux.net" 

這個命令不僅支持彈窗,還可以修改緊急程度、自定義圖標等。更多信息可以通過 man notify-send 來查詢。

你還可以在通知正文中使用一小段 HTML 標記來為你的信息增加一些格式,比如:加粗、斜體,等等。最重要的是,URL 還支持點擊,非常方便。例如:

  1. $ notify-send -u critical \ 
  2.   "Build failed!" \ 
  3.   "There were <b>123</b> errors. Click here to see the results: http://buildserver/latest" 

Linux使用終端工具給你的電腦發送彈窗提醒!

發送的通知跟系統的其它通知樣式一樣,外觀、行為并無二致。

結合 at 命令使用 notify-send

cron 命令通常用于定期調度任務,at 命令則是在指定時間單次執行指定命令。如果你像下面這樣運行 at 命令,它會以交互模式啟動,然后你可以在其中輸入你要執行的命令:

  1. at 12:00 

但我們一般不這么使用它。

at 命令可以接受來自標準輸入的參數,例如:

  1. $ echo "npm run build" | at now + 1 minute 
  2. $ echo "backup-db" | at 13:00 

熟練使用 Linux 的小伙伴都知道,我們有多種指定時間的方法。

  • 絕對時間,例如 10:00
  • 相對時間,例如 now + 2 hours
  • 特殊時間,例如 noon 或 midnight

利用 at 命令的這些特性,我們可以將它與 notify-send 命令結合使用,達到在未來的某個時間彈窗提醒的效果。例如:

  1. $ echo "notify-send 'Stop it and go home now?' 'Enough work for today.' -u critical" | at now 

Linux使用終端工具給你的電腦發送彈窗提醒!

編寫腳本實現彈窗通知功能

現在我們知道 nofity-send 怎么玩了,但每次都要敲這么長的一串命令還是很不方便。

作為程序員,我們能偷懶就偷懶,自己動手寫腳本把這個功能封裝起來!

比如我們把它封裝成一個 Bash 命令 remind ,然后通過下面方式來調用它:

  1. $ remind "I'm still here" now 
  2. $ remind "Time to wake up!" in 5 minutes 
  3. $ remind "Dinner" in 1 hour 
  4. $ remind "Take a break" at noon 
  5. $ remind "It's Friday pints time!" at 17:00 

簡直太特么方便了!

實現起來也很簡單,我們可以將腳本保存在某個位置,例如,在 ~/bin/ 目錄中,并在 .bashrc 配置文件中讓它生效,以便在登錄時加載它:

  1. $ source ~/bin/remind 

腳本內容如下:

  1. #!/usr/bin/env bash 
  2. function remind () { 
  3.   local COUNT="$#" 
  4.   local COMMAND="$1" 
  5.   local MESSAGE="$1" 
  6.   local OP="$2" 
  7.   shift 2 
  8.   local WHEN="$@" 
  9.   # Display help if no parameters or help command 
  10.   if [[ $COUNT -eq 0 || "$COMMAND" == "help" || "$COMMAND" == "--help" || "$COMMAND" == "-h" ]]; then 
  11.     echo "COMMAND" 
  12.     echo "    remind <message> <time>" 
  13.     echo "    remind <command>" 
  14.     echo 
  15.     echo "DESCRIPTION" 
  16.     echo "    Displays notification at specified time" 
  17.     echo 
  18.     echo "EXAMPLES" 
  19.     echo '    remind "Hi there" now' 
  20.     echo '    remind "Time to wake up" in 5 minutes' 
  21.     echo '    remind "Dinner" in 1 hour' 
  22.     echo '    remind "Take a break" at noon' 
  23.     echo '    remind "Are you ready?" at 13:00' 
  24.     echo '    remind list' 
  25.     echo '    remind clear' 
  26.     echo '    remind help' 
  27.     echo 
  28.     return 
  29.   fi 
  30.   # Check presence of AT command 
  31.   if ! which at >/dev/nullthen 
  32.     echo "remind: AT utility is required but not installed on your system. Install it with your package manager of choice, for example 'sudo apt install at'." 
  33.     return 
  34.   fi 
  35.   # Run commands: list, clear 
  36.   if [[ $COUNT -eq 1 ]]; then 
  37.     if [[ "$COMMAND" == "list" ]]; then 
  38.       at -l 
  39.     elif [[ "$COMMAND" == "clear" ]]; then 
  40.       at -r $(atq | cut -f1) 
  41.     else 
  42.       echo "remind: unknown command $COMMAND. Type 'remind' without any parameters to see syntax." 
  43.     fi 
  44.     return 
  45.   fi 
  46.   # Determine time of notification 
  47.   if [[ "$OP" == "in" ]]; then 
  48.     local TIME="now + $WHEN" 
  49.   elif [[ "$OP" == "at" ]]; then 
  50.     local TIME="$WHEN" 
  51.   elif [[ "$OP" == "now" ]]; then 
  52.     local TIME="now" 
  53.   else 
  54.     echo "remind: invalid time operator $OP" 
  55.     return 
  56.   fi 
  57.   # Schedule the notification 
  58.   echo "notify-send '$MESSAGE' 'Reminder' -u critical" | at $TIME 2>/dev/null 
  59.   echo "Notification scheduled at $TIME" 

好好玩玩吧!

原文鏈接:https://mp.weixin.qq.com/s/ln-YHil-eDkuXh-Sf4VtKQ

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产99久久久久久免费看 | 亚洲欧美aⅴ | 成人羞羞视频在线观看 | 国产精品久久久不卡 | 欧美精品激情在线 | 羞羞视频免费网站 | 羞羞视频免费网站男男 | 国产精品久久久久久久久久大牛 | 毛片国产 | 欧美性猛交xxxxx按摩国内 | 一区二区高清视频在线观看 | 久久久日韩精品一区二区 | 国产精品成人一区二区三区电影毛片 | 欧美18一12sex性处hd | 成人毛片网站 | 亚洲草逼视频 | 一级毛片播放 | 成人wxx视频免费 | 一级免费a | 成人毛片100部免费观看 | 欧美中文日韩 | 日韩视频不卡 | 最新视频一区二区 | 免费久久久久 | 日本不卡一区在线观看 | 国产亚洲欧美日韩高清 | 成人在线观看一区二区三区 | 成人在线免费视频播放 | 在线观看视频日本 | 久久久国产精品电影 | 亚洲精品一区二区三区免 | 国产精品免费观在线 | 午夜精品成人 | 深夜精品福利 | 欧美性猛交xxx乱大交3蜜桃 | 色的综合 | 在线播放91 | 国产精品一区在线免费观看 | 西川av在线一区二区三区 | 一级做a爰片性色毛片2021 | 国产精品一|