linux弹窗指令_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)) # 不能超过最⼤值
linux循环执行命令脚本then
zenity --info --text "必须⼩于60分钟,退出"
break
fi
notify-send "成功设定"$alartTime"分钟,开始计时"
sleep $((alartTime*60))
done
上⾯的脚本,使⽤了 notify-send 命令⽤于在桌⾯上弹出⽓泡提⽰,使⽤了 zenity 命令⽤于显⽰图形窗⼝。
⾃⼰⽤的话,上⾯的脚本可以写得更简单⼀点,因为错误检测没必要做。但是如果要给不太懂的⼈⽤的话,我这脚本⾥的错误检测及处理则会就显得有点⼒不从⼼了。
总结

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。