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

如何从Linux终端发送桌面通知和提醒

时间:2023-03-14 11:26:55 科技观察

本教程演示了如何使用脚本命令发送您自己的桌面通知和提醒。有时来自脚本的视觉反馈很有用。例如,当脚本或计划任务完成时,长时间运行的构建任务失败,或者当脚本执行出现紧急问题时。桌面应用程序可以通过弹出通知来执行此操作,但脚本也可以!您可以使用脚本命令向自己发送桌面通知和提醒。以下示例通知代码是在Linux上编写和测试的。它也可以在macOS上运行,但需要一点努力。有关提示和技巧,请参阅最后一节。从Linux终端发送通知要从Linux终端发送通知,请使用通知发送命令。运行whichnotify-send命令以查看它是否存在于您的系统中。如果没有,请使用您的包管理器来安装它。在Fedora上,输入:$sudodnfinstallnotify-send在基于Debian的发行版上,输入:$sudoaptinstallnotify-send一些简单的通知示例:$notify-send“晚餐准备好了!”$notify-send"每日提示""小睡一下怎么样?"您可以使用紧急程度、自定义图标等选项自定义通知。有关详细信息,请参阅mannotify-send。您还可以在通知文本中使用一小组HTML标记,使消息具有出色的视觉效果。最重要的是,URL呈现为可点击。例如:$notify-send-ucritical\"构建失败!"\"有123个错误。单击此处查看结果:http://buildserver/latest"构建失败通知发送的通知将被桌面环境拾取并像任何其他通知一样显示。它们将具有相同的外观、交互和行为。使用notify-send和at计划任务通常用于定期安排命令。at命令安排命令在指定时间执行。如果你这样运行它,它会以交互模式启动,你可以在其中输入要在指定时间执行的命令:$at12:00这对脚本编写没有用。幸运的是at接受来自标准输入的参数,所以我们可以这样使用它:$echo"npmrunbuild"|在现在+1分钟$echo"backup-db"|at13:00指定时间的方式有很多种。从绝对时间,例如10:00,到相对时间,例如现在+2小时,再到特殊时间,例如中午或午夜。我们可以将其与notify-send结合使用,以便在将来的某个时候向自己发送提醒。示例:$echo"notify-send'停止并立即回家?'“今天的工作够多了。”-u关键”|在nowStopforthedaynotificationReminderCommand现在,创建自定义Bash命令来给自己发送提醒消息。像这样简单且用户友好的命令:$remind“I'mstillhere”now$remind“Timetowakeup!”5分钟后$提醒“晚餐”1小时后$提醒“休息一下”中午$提醒“周五品脱时间到了!”在17:00这比Alexa还厉害!该怎么做请看下面的代码。它定义了一个名为remind的函数,它支持上述语法。实际工作在最后两行完成。其余部分负责显示帮助消息、参数验证等,这与任何大型应用程序中有用代码与必要白噪声的比例大致相同。将代码保存在某个地方,例如,在~/bin/remind文件中,并将此函数写入您的.bashrc配置文件中,以便在您登录时加载它:$source~/bin/remindreopenTerminal,然后键入提醒看语法。尽情享受吧!#!/usr/bin/envbashfunctionremind(){localCOUNT="$#"localCOMMAND="$1"localMESSAGE="$1"localOP="$2"shift2localWHEN="$@"#如果没有参数则显示帮助,如果[[$COUNT-eq0||则显示帮助命令"$COMMAND"=="帮助"||"$COMMAND"=="--帮助"||"$COMMAND"=="-h"]];thenecho"COMMAND"echo"remind