使用At重复Bash任务

时间:2014-08-14 11:07:36

标签: bash shell

我正在运行ubuntu 13.10并希望编写一个bash脚本,它将以非预定的时间间隔执行给定的任务。我对此的理解是cronjobs要求我知道什么时候再次执行任务。因此,我被建议使用“at”。

我在使用“at”时遇到了一些麻烦。根据一些实验,我发现了

echo "hello" | at now + 1 minutes 

将在我的终端中运行(带和不带引号)。运行“atq”会导致我的计算机告诉我该命令在队列中。但是,我从来没有看到命令的结果。我认为我做错了什么,但这些联机帮助文件似乎没有告诉我任何有用的东西。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

除了命令在没有终端的情况下运行(输出和输入可能重定向到/dev/null)之外,您的命令也不会运行,因为您传递给at的内容不是{{ 1}}但只是echo hello。除非hello实际上是现有命令,否则它将无法运行。你想要的可能是:

hello

如果您想知道您的命令是否真的在运行,请尝试将输出重定向到文件:

echo "echo hello" | at now + 1 minutes 

稍后检查文件。