为什么我的‘at’子句命令立即执行 shell 而忽略时间限制?

为什么我的‘at’子句命令立即执行 shell 而忽略时间限制?

我写了一个名为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

它清楚地显示这将在 2014 年 6 月 15 日星期日 03:13:00 执行

但当我检查文件夹时,发现那里有一个 88888 文件。删除它并重试,结果还是一样。

这里有什么问题?是 bash/sh 的问题吗?因为我看到它说将由 /bin/sh 执行?

答案1

at从标准输入读取命令,或者如果指定标志则从文件读取命令-fsh 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

相关内容