服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Ubuntu - ubuntu中实现定时弹窗的提醒脚本

ubuntu中实现定时弹窗的提醒脚本

2021-11-11 17:02steveye Ubuntu

最近的项目是在ubuntu的环境下工作的,因为长时间工作身体不适,所以想写个脚本定时提醒自己喝水,伸懒腰,这篇文章记录了整个开发的过程,有需要的朋友们可以来一起看看。

简单的弹窗效果

首先是上网查了ubuntu中的弹窗命令,发现notify-send这个命令就能满足要求了

?
1
notify-send ["该休息一下啦"] "喝水!伸懒腰!动一动!"

弹窗效果

ubuntu中实现定时弹窗的提醒脚本

弹窗效果有了,然后应该是一个定时弹窗的功能

一、cron命令实现定时弹窗

想到的是cron命令,google了很多教程,都没有成功

在/etc/crontab 中加入了

?
1
* * * * * root notify-send ["该休息一下啦"] "喝水!伸懒腰!动一动!"

也用命令编辑了

?
1
crontab -e

同时也启动了cron服务

?
1
server cron start

还是没有成功

终于在一个介绍crontab用法的博客终于找到我的crontab脚本不执行的原因了:没有设置环境变量!

在crontab文件中定义多个调度任务时,需要特别注环境变量的设置,因为我们手动执行某个任务时,是在当前shell环境下进行的,程序当然能找到环境变量,而系统自动执行任务调度时,是不会加载任何环境变量的,因此,就需要在crontab文件中指定任务运行所需的所有环境变量

crontab脚本

?
1
2
3
home=/
shell=/bin/bash
0 * * * * notify-send ["该休息一下啦"] "喝水!伸懒腰!动一动!"

这样就实现了

二、shell脚本无限循环实现

下面是脚本:

?
1
2
3
4
5
6
while :
do
 sleep 3600
 echo time past
 notify-send ["该休息一下啦"] "喝水!伸懒腰!动一动!"
done

把这个脚本加入到home目录的.bashrc中,每次登陆就能启动了

三、利用zenity和notify-send实现

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
alarttime=100
while (($alarttime))
do
if (($alarttime != 100)) # 如果不是 100,则说明不是初次运行,则弹出下面的提示
then
notify-send $alarttime"分钟已到,请重新设定!"
zenity --info --text "时间到,请重新设定!"
fi
alarttime=$(zenity --entry --title "定时提醒" --text "输入提醒时间(分钟, 将忽略小数)")
alarttime=${alarttime%.*} # 忽略输入的小数点后面的数字,如 4.6 识别为 4
if (($alarttime > 60)) # 不能超过最大值
then
zenity --info --text "必须小于60分钟,退出"
break
fi
notify-send "成功设定"$alarttime"分钟,开始计时"
sleep $((alarttime*60))
done

上面的脚本,使用了 notify-send 命令用于在桌面上弹出气泡提示,使用了 zenity 命令用于显示图形窗口。
自己用的话,上面的脚本可以写得更简单一点,因为错误检测没必要做。但是如果要给不太懂的人用的话,我这脚本里的错误检测及处理则会就显得有点力不从心了。

总结

好了,终于完成了ubuntu中弹窗提醒脚本了,本文提供三种方法供大家参考借鉴,不知道大家都学会了没有,希望这篇文章的内容对大家能有所帮助,如果有疑问大家可以留言交流。

延伸 · 阅读

精彩推荐
  • UbuntuUbuntu Gnome下如何修改应用图标icon?

    Ubuntu Gnome下如何修改应用图标icon?

    最近有些朋友问小编Ubuntu Gnome下如何修改应用图标icon?今天小编要为大家分享的是Ubuntu Gnome下修改应用图标icon的方法;有需要的朋友一起去看看吧...

    服务器之家6412019-06-01
  • UbuntuUbuntu20.04开启root账户的方法步骤

    Ubuntu20.04开启root账户的方法步骤

    这篇文章主要介绍了Ubuntu20.04开启root账户的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    缀梦13002020-08-01
  • UbuntuUbuntu下安装Chrome的方法分享

    Ubuntu下安装Chrome的方法分享

    本文给大家分享的是Ubuntu下安装Chrome的方法,安装的过程中发现还是挺麻烦的,就记录下来推荐给大家,有需要的小伙伴可以参考下。...

    Ubuntu教程网3862021-10-25
  • Ubuntu如何在ubuntu系统中安装pycharm工具并运行

    如何在ubuntu系统中安装pycharm工具并运行

    在Windows系统中安装pycharm,只需要下载安装包,然后根据指令一步一步操作;而在Linux系统中的Ubuntu中安装pycharm,需要下载安装包,还有安装相关的其他软件...

    百度经验12082019-10-21
  • UbuntuUbuntu 15.04升级到Ubuntu 15.10的详细教程

    Ubuntu 15.04升级到Ubuntu 15.10的详细教程

    ubuntu15.04怎么升级到ubuntu15.10?又该升级系统了,但是很多人对ubuntu系统很不熟悉,下面我们一起来看看ubuntu15.04升级ubuntu15.10的详细教程,需要的朋友可以...

    服务器之家4562019-07-02
  • UbuntuWSL、WSL2与Ubuntu性能大PK

    WSL、WSL2与Ubuntu性能大PK

    科技媒体 Phoronix 对 Windows 10 May 2020 中 WSL 和 WSL 2 的性能进行了测试,参与测试的发行版为 Ubuntu 20.04 on WSL/WSL2 ,以及 Ubuntu 20.04 LTS,均被安装在除 Windows 之...

    开源中国29412020-06-23
  • UbuntuUbuntu17.10怎么添加日历事项? Ubuntu添加行程提醒的教程

    Ubuntu17.10怎么添加日历事项? Ubuntu添加行程提醒的教程

    Ubuntu17.10怎么添加日历事项?Ubuntu17.10系统中有一个日程管理功能,可以在日历中添加行程提醒,下面我们就来看看Ubuntu添加行程提醒的教程,需要的朋友可...

    服务器之家2812019-06-19
  • UbuntuUbuntu安装和卸载CUDA和CUDNN的实现

    Ubuntu安装和卸载CUDA和CUDNN的实现

    这篇文章主要介绍了Ubuntu安装和卸载CUDA和CUDNN的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    夜雨飘零14632020-08-04