Как отправить уведомление с помощью команды?

У меня есть скрипт bash, который запускается периодически один раз в день, используя crontab,

Скрипт проверяет условие, и если оно истинно, он должен выдать at command в определенное время.

at 14:10 <notify-send hello>

Вопрос в том, как добавить конкретную команду, например notify-send к at команда?

2 ответа

Решение
echo "notify-send 'hello'" | at 14:10

at ожидает команды от STDIN.

Если вы хотите заставить замолчать /bin/sh предупреждение, запустите это так:

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

Поскольку я искал быстрый способ напомнить себе с помощью 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не отключайте уведомление и держите его открытым

и просто для информации: как улучшение atqили же at -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'

( как упоминалось здесь в сбое сервера )

* протестировано с Manjaro21/Debian10

Другие вопросы по тегам