我写了一个名为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
从标准输入读取命令,或者如果指定标志则从文件读取命令-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
。