【发布时间】:2015-02-04 00:50:14
【问题描述】:
例如,我正在尝试使用 echo "haha" | at 20:30 让我的命令在几分钟内执行。
但是命令永远不会执行:
$ date
Tue 3 Feb 2015 20:47:22 AST
$ echo "test" | at 20:48
job 5 at Tue Feb 3 20:48:00 2015
$ date
Tue 3 Feb 2015 20:48:05 AST
我做错了什么?
【问题讨论】:
-
你为什么认为你做错了什么?
atd将命令作为其守护进程的子进程运行——即使test命令确实 有任何输出(它没有),也不会输出到您的终端。 -
还要记住——
echo "test" | at 20:48不会将echo "test"发送到at,它会将test发送到at;一个shell管道将左侧命令的输出连接到右侧命令的输入,echo "test"的输出为test。 -
@CharlesDuffy 那么如何向 at 发送命令?
-
嗯,正常的方法是使用引用的 heredoc,但我需要写一个完整的答案来描述它。
-
天啊,我只想让一个命令在某个时间执行,通常是几分钟后。我是不是把事情复杂化了?
标签: macos bash command-line terminal