Почему моя команда "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,