当前位置: 首页 > 科技观察

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

时间:2023-03-23 01:24:30 科技观察

大家好,我是良旭。现在人人都有智能手机,而这些智能手机有一个非常实用的功能,就是弹窗提醒。当我们收到短信或微信消息时,手机会弹出一个窗口,显示消息的大致内容。使用此功能,您不会错过重要信息。电脑上也有类似的功能,也很实用。但是这个功能是在系统级别的。我们可以通过脚本调用这个弹出功能吗?答案是肯定的!例如,当脚本或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\"Buildfailed!"\"Therewere123errors.Clickhereetoseethersults:http://buildserver/latest"发送的通知与系统中的其他通知相同,与外观和行为没有区别。notify-sendcron命令配合at命令通常用于定时调度任务,at命令是在指定的时间执行一次指定的命令。如果你这样运行at命令,它会以交互模式启动,然后你可以在里面输入你要执行的命令:$at12:00但是我们一般不会这样使用。at命令可以接受来自标准输入的参数,例如:$echo"npmrunbuild"|atnow+1minute$echo"backup-db"|at13:00熟练使用Linux的朋友都知道我们有很多种指定时间的方法.绝对时间,比如10:00相对时间,比如now+2hours特殊时间,比如中午或午夜未来某个时间向上窗口提醒效果。例如:$echo"notify-send'Stopitandgohomenow?''Enoughworkfortoday.'-ucritical"|atnow写一个脚本实现弹出通知功能现在我们知道怎么玩nofity-send了,但是我们要输入这样一个每次都是一长串命令还是很不方便。作为程序员,我们可以偷懒,写脚本封装这个功能!比如我们把它封装成一个Bash命令remind,然后通过下面的方式调用它:“周五品酒时间!”at17:00太他妈方便了!实现起来也很简单,我们可以把脚本保存在某个地方,比如在~/bin/目录下,然后在.bashrc配置文件中启用,这样就可以在登录时加载:$source~/bin/remind脚本内容如下:#!/usr/bin/envbashfunctionremind(){localCOUNT="$#"localCOMMAND="$1"localMESSAGE="$1"localOP="$2"shift2localWHEN="$@"#Displayhelpifnoparametersorhelpcommandif[[$COUNT-eq0||"$COMMAND"=="help"||"$COMMAND"=="--help"||"$COMMAND"=="-h"]];thenecho"COMMAND"echo"remind