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

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

Я написал оболочку под названиемт.ш Его содержание:

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. Удалил его и попробовал снова, результат тот же.

В чем тут проблема? Может, это 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.

Связанный контент