Создание временного задания Cron из терминала - PullRequest
3 голосов
/ 15 ноября 2010

Есть ли способ создать временное одноразовое задание cron только из командной строки?Я хотел бы иметь функцию таймера для яиц, чтобы открыть терминал и выполнить:

notify "time is up" 30

, который просто запустил бы это через 30 минут:

zenity --info --text="time is up"

Это кажется достаточно простымдля меня, чтобы создать, но мне трудно поверить, что никто не создал нечто подобное.Поиск в репозитории Ubuntu пакетов времени ничего не показывает.Это было сделано раньше?

Ответы [ 4 ]

9 голосов
/ 15 ноября 2010

Используйте команду at.

$ at now + 30 minutes
at> zenity --info --text="time is up"
at> ^D     (press CTRL-D)

Формат времени довольно гибкий. Вот несколько примеров.

$ at 11:45

$ at 0800 Friday

$ at 4pm + 3 days

$ at 9am tomorrow
4 голосов
/ 15 ноября 2010

Если вы знаете, что ваш $DISPLAY будет таким же, вы можете сделать:

echo "DISPLAY=$DISPLAY zenity --info --text=\"time is up\"" | at now + 30 minutes

Предоставление переменной окружения таким образом сделает ее доступной для zenity при ее запуске.

2 голосов
/ 15 ноября 2010

Вы можете написать себе небольшой скрипт.

#! /bin/bash
sleep $(($2 * 60))
zenity --info --text="$1"

Сделать его исполняемым и запустить его из командной строки:

./notify "Time is up" 30
0 голосов
/ 15 ноября 2010
...