Я хочу запланировать события на точное время в Mac OS X. Кажется, что команда «at» - самый простой способ сделать это.

Я включил atrun с помощью команды:

launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

Для тестирования я использую следующий однострочный BASH-скрипт:

echo 'foo' >> path/to/log.txt | at now + 2 minutes

Когда я запускаю скрипт, я получаю вывод:

job 17 at Sat May 15 12:57:00 2010

где «12: 57: 00» - это действительно 2 минуты в будущем. Но команда echo выполняется немедленно: строка 'foo' сразу добавляется в log.txt.

Как я могу заработать на работе для меня?

1 ответ1

0

Ты делаешь это неправильно. at читает команды из stdin как текст, он не может волшебным образом узнать их из конвейера.

Ваша команда ...

echo 'foo' >> path/to/log.txt | at now + 2 minutes

... работает как echo , и at то же время, в трубопроводе. (Подумайте кошки | Grep некий - cat somefile | grep sometext Так что at получит слово foo на его стандартный ввод. Однако вывод echo перенаправляется в файл, поэтому at ничего не получает.


Правильная команда будет:

echo "echo 'foo' >> path/to/log.txt" | at now + 2 minutes

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .