ubuntu中實現(xiàn)定時彈窗的提醒腳本
簡單的彈窗效果
首先是上網查了ubuntu中的彈窗命令,發(fā)現(xiàn)notify-send這個命令就能滿足要求了
notify-send ["該休息一下啦"] "喝水!伸懶腰!動一動!"
彈窗效果

彈窗效果有了,然后應該是一個定時彈窗的功能
一、cron命令實現(xiàn)定時彈窗
想到的是cron命令,google了很多教程,都沒有成功
在/etc/crontab 中加入了
* * * * * root notify-send ["該休息一下啦"] "喝水!伸懶腰!動一動!"
也用命令編輯了
crontab -e
同時也啟動了cron服務
server cron start
還是沒有成功
終于在一個介紹crontab用法的博客終于找到我的crontab腳本不執(zhí)行的原因了:沒有設置環(huán)境變量!
在crontab文件中定義多個調度任務時,需要特別注環(huán)境變量的設置,因為我們手動執(zhí)行某個任務時,是在當前shell環(huán)境下進行的,程序當然能找到環(huán)境變量,而系統(tǒng)自動執(zhí)行任務調度時,是不會加載任何環(huán)境變量的,因此,就需要在crontab文件中指定任務運行所需的所有環(huán)境變量
crontab腳本
HOME=/ SHELL=/bin/bash 0 * * * * notify-send ["該休息一下啦"] "喝水!伸懶腰!動一動!"
這樣就實現(xiàn)了
二、shell腳本無限循環(huán)實現(xiàn)
下面是腳本:
while : do sleep 3600 echo time past notify-send ["該休息一下啦"] "喝水!伸懶腰!動一動!" done
把這個腳本加入到home目錄的.bashrc中,每次登陸就能啟動了
三、利用zenity和notify-send實現(xiàn)
#!/bin/bash
alartTime=100
while (($alartTime))
do
if (($alartTime != 100)) # 如果不是 100,則說明不是初次運行,則彈出下面的提示
then
notify-send $alartTime"分鐘已到,請重新設定!"
zenity --info --text "時間到,請重新設定!"
fi
alartTime=$(zenity --entry --title "定時提醒" --text "輸入提醒時間(分鐘, 將忽略小數(shù))")
alartTime=${alartTime%.*} # 忽略輸入的小數(shù)點后面的數(shù)字,如 4.6 識別為 4
if (($alartTime > 60)) # 不能超過最大值
then
zenity --info --text "必須小于60分鐘,退出"
break
fi
notify-send "成功設定"$alartTime"分鐘,開始計時"
sleep $((alartTime*60))
done
上面的腳本,使用了 notify-send 命令用于在桌面上彈出氣泡提示,使用了 zenity 命令用于顯示圖形窗口。
自己用的話,上面的腳本可以寫得更簡單一點,因為錯誤檢測沒必要做。但是如果要給不太懂的人用的話,我這腳本里的錯誤檢測及處理則會就顯得有點力不從心了。
總結
好了,終于完成了ubuntu中彈窗提醒腳本了,本文提供三種方法供大家參考借鑒,不知道大家都學會了沒有,希望這篇文章的內容對大家能有所幫助,如果有疑問大家可以留言交流。
相關文章
Apache2.4.x版wampserver本地php服務器如何讓外網訪問及啟用.htaccess
這篇文章主要介紹了Apache2.4.x版wampserver本地php服務器如何讓外網訪問及啟用.htaccess,需要的朋友可以參考下2015-02-02
CentOS 7中 Apache Web 服務器安裝配置教程
這篇文章主要介紹了CentOS 7中 Apache Web 服務器安裝配置教程,需要的朋友可以參考下2018-04-04
Linux Ubuntu實現(xiàn)查看磁盤剩余空間及內存
這篇文章主要介紹了Linux Ubuntu實現(xiàn)查看磁盤剩余空間及內存方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11

