当前位置: 首页 > 后端技术 > Java

使用终端工具向您的计算机发送弹出通知!

时间:2023-04-01 17:08:19 Java

大家好,我是良旭。现在人人都有智能手机,而这些智能手机有一个非常实用的功能,就是弹窗提醒。当我们收到短信或微信消息时,手机会弹出一个窗口,显示消息的大致内容。使用此功能,您不会错过重要信息。电脑上也有类似的功能,也很实用。但是这个功能是系统级的,我们可以通过脚本调用这个弹窗功能吗?答案是肯定的!比如当一个脚本或者cron任务完成,一个长时间运行的编译任务失败,或者在脚本执行过程中出现紧急问题,这些时候电脑上弹出的提醒一定会让隔壁的美女同事刮目相看!以下代码是在Linux系统上编写和测试过的,也可以移植到Mac电脑上。从Linux终端发送弹出通知要从Linux终端发送通知,您需要使用notify-send命令。大多数发行版默认没有安装这个命令,需要我们自己安装。在Fedora上,键入:$sudodnfinstallnotify-send在基于Debian的发行版上,键入:$sudoaptinstallnotify-send一些简单的弹出通知示例:$notify-send"liangxuisgreat!!"$notify-send"welcometoliangxu'swebsite""www.lxlinux.net"该命令不仅支持弹窗,还可以修改紧急程度,自定义图标等,更多信息可以通过mannotify-send查询.您还可以在通知文本中使用一小段HTML标记来为您的消息添加一些格式,例如:粗体、斜体等。最重要的是,该URL还支持点击,非常方便。例如:$notify-send-ucritical\"构建失败!"\"Therewere123errors.Clickheretoseetheresults:http://buildserver/latest"系统发送的通知与其他通知样式相同,外观和行为是一样的。notify-sendcron命令配合at命令通常用于定时调度任务,at命令是在指定的时间执行一次指定的命令。如果你这样运行at命令,它会以交互模式启动,然后你可以在其中输入你要执行的命令:$at12:00但是我们一般不会这样使用。at命令可以接受来自标准输入的参数,例如:$echo"npmrunbuild"|在现在+1分钟$echo"backup-db"|at13:00熟练使用Linux的朋友都知道我们有多种指定时间的方法。绝对时间,比如10:00相对时间,比如now+2hours特殊时间,比如中午或午夜利用at命令的这些特性,我们可以结合notify-send命令来实现弹出-未来某个时间向上窗口提醒效果。例如:$echo"notify-send'停止并立即回家?'“今天的工作够多了。”-u关键”|现在写个脚本实现弹窗通知功能现在我们知道怎么玩nofity-send了,但是每次都要敲这么长一串的命令,还是很不方便的。作为程序员,我们可以偷懒,自己写脚本封装这个功能!比如我们把它封装成一个Bash命令remind,然后通过下面的方式调用它:5分钟后$提醒1小时后“晚餐”$提醒中午“休息一下”$提醒“周五品脱时间到了!”17:00太他妈方便了!实现起来也很简单,我们可以将脚本保存在某个地方,比如在~/bin/目录下,并在.bashrc配置文件中激活,以便在登录时加载:$source~/bin/的内容提醒脚本如下:#!/usr/bin/envbashfunctionremind(){localCOUNT="$#"localCOMMAND="$1"localMESSAGE="$1"localOP="$2"shift2localWHEN="$@"#如果没有参数则显示帮助或帮助命令if[[$COUNT-eq0||"$COMMAND"=="帮助"||"$COMMAND"=="--帮助"||"$COMMAND"=="-h"]];然后echo"COMMAND"echo"remind