'at' 命令预期行为?启动每个命令而不是调度

Mic*_*ins 7 linux bash scheduled-tasks command-line at

我正在尝试安排一些程序的执行。我正在使用这个命令:

./tests.o | at 15:00&
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,预期的行为是将执行延迟到 15:00。但是,如果我在top启动上述命令后立即运行,我可以看到 test.o 已经占用了 CPU 时间。

由于我需要对共享资源启动多个测试,我想知道如何正确使用“at”?

我究竟做错了什么?

AFH*_*AFH 10

at从标准输入读取命令。您正在做的是运行./tests.o并将其输出字符串作为命令提供at给调度。此外,不需要尾随&,因为会at立即返回。

你需要的是:

echo ./tests.o | at 15:00
Run Code Online (Sandbox Code Playgroud)

或者:

at 15:00 <<< ./tests.o
Run Code Online (Sandbox Code Playgroud)

如果您希望预定命令使用重定向或其他 shell 功能,则需要使用引号,例如:

at 15:00 <<< './tests.o > tests.log'
Run Code Online (Sandbox Code Playgroud)