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

简单的弹窗效果

首先是上网查了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/bash
0 * * * * notify-send ["该休息一下啦"] "喝水!伸懒腰!动一动!"

这样就实现了

二、shell脚本无限循环实现

下面是脚本:

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

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

三、利用zenity和notify-send实现

#!/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中弹窗提醒脚本了,本文提供三种方法供大家参考借鉴,不知道大家都学会了没有,希望这篇文章的内容对大家能有所帮助,如果有疑问大家可以留言交流。

(0)

相关推荐

  • Ubuntu服务器配置apache2.4的限速功能shell脚本分享

    过程都写成脚本了,原理都写在注释里,大家懂的.一键操作就是sudo bash xxx.sh 复制代码 代码如下: #!/bin/bash #cd到临时目录创建配置文件 cd /tmp (cat <<EOF <Directory /home/hursing/mylimiteddir/>     SetOutputFilter RATE_LIMIT     SetEnv rate-limit 30 </Directory> EOF ) > ratelimit.conf

  • 获取服务器信息的Shell脚本分享(ubuntu、centos测试通过)

    此脚本已经在ubuntu以及centos版本上测试通过,脚本如下: 复制代码 代码如下: #!/bin/bash Line='===========' #linux发行版名称 if [[ -f /usr/bin/lsb_release ]]; then OS=$(/usr/bin/lsb_release -a |grep Description |awk -F : '{print $2}' |sed 's/^[ \t]*//g') else OS=$(cat /etc/issue |sed -n

  • Ubuntu、Linux Mint一键安装Chrome浏览器的Shell脚本分享

    把下面的脚本保存为xxx.sh,然后 sudo sh xxx.sh 复制代码 代码如下: wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/googl

  • Ubuntu Server下MySql数据库备份脚本代码

    说明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar.gz的压缩文件格式(2012_04_11是指备份执行时当天的日期), 最后只保留最近7天的备份. 实现步骤: 1.创建保存备份文件的目录:/home/mysql_datacd /home #进入目录mkdir mysql_data #创建目录2.创建备份脚本文件:/home/mysql_data/

  • ubuntu系统中nginx启动脚本

    复制代码 代码如下: #! /bin/sh### BEGIN INIT INFO# Provides:          nginx# Required-Start:    $remote_fs $syslog# Required-Stop:     $remote_fs $syslog# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# Short-Description: nginx init.d dash script for Ub

  • Shell脚本实现自动检测修改最快的Ubuntu软件源

    每次装好Ubuntu,对于大多数用户来说,首先要做的事就是手动修改/etc/apt/sources.list文件,将里面的官方软件源地址更换为自己学校或者公司的软件源.当我们更换一个工作环境后,可能伴随着又要替换旧的软件源地址. 笔者觉得这样每次手动更改软件源是一件及其麻烦重复的劳动,于是编写了一个自动更新最快软件源的脚本,从此一劳永逸. 原理 最直观的想法就是:对各个软件源进行测速,选出最快的那个,之后将其替换为新的软件源. 那么如何对各个软件源测速呢?有两种方法: 一.用ping命令 测量其

  • Ubuntu下定时提交代码到SVN服务器的Shell脚本分享

    有两个用途,一是偷懒不用去提交代码,二是在远程服务器上使用以作定期备份. 复制代码 代码如下: sudo gedit /etc/crontab 打开后加入这行 复制代码 代码如下: 0 * * * * my_user_name    my_script_path 表示每个整点以my_user_name身份执行my_script_path.这里最好是使用当前的用户名,修改掉默认的root,否则可能以root身份会提交失败.详情请询问百度crontab的用法. 然后script的内容为: 复制代码

  • Ubuntu 14.04设置开机启动脚本的方法

    rc.local脚本 rc.local脚本是一个ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令.该脚本位于/etc/路径下,需要root权限才能修改. 该脚本具体格式如下: #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success o

  • mysql自动化安装脚本(ubuntu and centos64)

    Ubuntu Mysql自动化安装脚本 复制代码 代码如下: #/bin/bash function hasDpkg { r=`dpkg -l | grep "$1"` if [ -n "$r" ] then h=`dpkg -l | grep "ii $1"` if [ -n "$h" ] then return 1 else return 0 fi else return 0 fi } mysql="mysql-

  • 用Shell脚本快速搭建Ubuntu下的Nodejs开发环境

    nodejs的确是很火,以前倒腾过,但是从来没有认真记录下什么.在ubuntu下搭建它的开发环境尝尝鲜,有一个捷径,它能让系统自动帮你安装所需要的东西,我们生成一段shell脚本,让它来完成以下工作: 安装 git下最新的node,node包管理器,Forever和Cloud9IDE工具(可选),mongodb 10gen:注:脚本的正常运行需要比较新版本的Ubuntu,而且需要联网,因为它会连接网络去下载所有的依赖包顺序安装. 1.脚本代码: 复制代码 代码如下: #!/bin/shecho

随机推荐