Почему моя команда "at" сразу выполняет оболочку и игнорирует ограничение по времени?

Я написал оболочку с именем t.sh Это содержимое:

touch 88888

Я использую команду

sh t.sh | at 03:13Jun15

После того, как я выполнил эту команду, я получил это шоу на моем экране:

warning: commands will be executed using /bin/sh
job 9 at Sun Jun 15 03:13:00 2014

Это показывает совершенно ясно, что это будет выполнено в ВС 15 июня 03:13:00 2014

Но когда я проверяю свою папку и обнаруживаю, что файл 88888 существует там. Rmoved это и попробовать agian, все тот же результат.

В чем тут проблемы? Будет ли это вещь bash/sh? Потому что я видел, что он говорит, будет выполнять /bin/sh?

1 ответ

Решение

at читает команды из стандартного ввода или из файла, если вы укажете -f флаг. Какие sh t.sh | at [time] делает это:

1. execute the shell script t.sh *right now*; 
2. pipe the output of the shell script to at. 

Но сценарий не имеет выходных данных, поэтому в воскресенье выполнять нечего.

Что вы хотите at 03:13Jun15 -f t.sh,

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