我正计划编写 CLI 程序。该 CLI 程序应该能够在预定时间运行。
该程序是否有可能以某种方式通知用户的 shell?有点像mail
告诉您您有未读邮件?
答案1
如果我理解你的问题,要发送 GUI 通知,你可以使用:
notify-send
xmessage
zenity
欲了解更多信息
答案2
实施邮件检查在各种贝壳中。您可能不希望在用户可能使用的 shell 中添加额外的检查。要进行类似的检查,最简单的方法是实现一个工具,该工具在应显示通知时生成适当的输出,并从用户的 shell 启动脚本运行该工具。
这方面有很多例子;如果您检查您的系统/etc/profile.d
,您可能会发现类似的工具可以用作灵感。例如,在具有abrt
(RHEL 等)的系统上,您会发现一个脚本,该脚本在用户登录时abrt-console-notification.sh
显示的状态。abrt
答案3
write user
尝试在您的 cron 作业中进行操作。就像放一个
x y z * * write user%message%
进入你的crontab
.
但请注意:该用户必须登录才能收到通知。 GUI 下的简单终端会话不会。
如果使用(最近的)bash
或类似的 shell,请PROMPT_COMMAND
使用任意文件进行设置,例如
PROMPT_COMMAND='[ -f /tmp/msg ] && cat /tmp/msg && rm /tmp/msg'
并有一个crontab
像这样的条目
x y z * * echo message > /tmp/msg
将在下一个提示之前显示一次“消息”。