如何使用 at 命令发送通知?

如何使用 at 命令发送通知?

我有一个 bash 脚本,使用 每天定期运行一次crontab

脚本检查一个条件,如果为真,则应at command在特定时间发出。

at 14:10 <notify-send hello>

问题是:我如何notify-send向该at命令添加特定的命令?

答案1

echo "notify-send 'hello'" | at 14:10

at正在等待来自 STDIN 的命令。

如果您想消除/bin/sh警告,请按如下方式运行:

echo "notify-send 'hello'" | at 14:10 2>/dev/null

答案2

当我在寻找一种快速的方法来提醒自己使用 dunstify/notify-send 时,我想推广@Ruslan 的评论,因为它涉及较少的输入(当你想“只设置一个计时器”时,这很重要)

at now + 3minutes <<< "notify-send -t 0 'tee is ready'"

...或者使用更少的空格/字符:

at now+3min<<<'notify-send -t 0 tee isready'
  • -t 0不要使通知超时并保持打开状态

仅供参考:为了改进atqat -l列出,我使用了一个别名,它也可以打印执行的命令,不仅仅是时间/队列/用户:

alias ,atl='for j in $(atq | sort -k6,6 -k3,3M -k4,4 -k5,5 |cut -f 1); do atq |grep -P "^$j\t" ;at -c "$j" | tail -n 2; done'

正如 serverfault 中提到的那样

* 使用 Manjaro21/Debian10 进行测试

相关内容