簡單的彈窗效果
首先是上網查了ubuntu中的彈窗命令,發現notify-send
這個命令就能滿足要求了
notify-send ["該休息一下啦"] "喝水!伸懶腰!動一動!"
彈窗效果
彈窗效果有了,然后應該是一個定時彈窗的功能
一、cron命令實現定時彈窗
想到的是cron
命令,google了很多教程,都沒有成功
在/etc/crontab 中加入了
* * * * * root notify-send ["該休息一下啦"] "喝水!伸懶腰!動一動!"
也用命令編輯了
crontab -e
同時也啟動了cron服務
server cron start
還是沒有成功
終于在一個介紹crontab用法的博客終于找到我的crontab腳本不執行的原因了:沒有設置環境變量!
在crontab文件中定義多個調度任務時,需要特別注環境變量的設置,因為我們手動執行某個任務時,是在當前shell環境下進行的,程序當然能找到環境變量,而系統自動執行任務調度時,是不會加載任何環境變量的,因此,就需要在crontab文件中指定任務運行所需的所有環境變量
crontab腳本
HOME=/SHELL=/bin/bash0 * * * * notify-send ["該休息一下啦"] "喝水!伸懶腰!動一動!"
這樣就實現了
二、shell腳本無限循環實現
下面是腳本:
while :do sleep 3600 echo time past notify-send ["該休息一下啦"] "喝水!伸懶腰!動一動!"done
把這個腳本加入到home目錄的.bashrc
中,每次登陸就能啟動了
三、利用zenity和notify-send實現
#!/bin/bashalartTime=100while (($alartTime))doif (($alartTime != 100)) # 如果不是 100,則說明不是初次運行,則彈出下面的提示thennotify-send $alartTime"分鐘已到,請重新設定!"zenity --info --text "時間到,請重新設定!"fialartTime=$(zenity --entry --title "定時提醒" --text "輸入提醒時間(分鐘, 將忽略小數)")alartTime=${alartTime%.*} # 忽略輸入的小數點后面的數字,如 4.6 識別為 4if (($alartTime > 60)) # 不能超過最大值thenzenity --info --text "必須小于60分鐘,退出"breakfinotify-send "成功設定"$alartTime"分鐘,開始計時"sleep $((alartTime*60))done
上面的腳本,使用了 notify-send
命令用于在桌面上彈出氣泡提示,使用了 zenity 命令用于顯示圖形窗口。
自己用的話,上面的腳本可以寫得更簡單一點,因為錯誤檢測沒必要做。但是如果要給不太懂的人用的話,我這腳本里的錯誤檢測及處理則會就顯得有點力不從心了。
總結
好了,終于完成了ubuntu中彈窗提醒腳本了,本文提供三種方法供大家參考借鑒,不知道大家都學會了沒有,希望這篇文章的內容對大家能有所幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答
圖片精選