
Я написал оболочку под названиемт.ш Его содержание:
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
.