running at 命令立即运行脚本

running at 命令立即运行脚本

我尝试使用“at”命令在特定时间停止和启动服务器,但由于某种原因脚本立即运行。我尝试了不同的方法来做到这一点,但它总是会运行。我究竟做错了什么?我尝试这样做:

./stop | at 03:52 092421

像这样:

./start | at 04:00 tommorow

答案1

我究竟做错了什么?

您正在调用./stop(或./start)。不是at谁立即运行脚本。是你。

./stop | at …./stop同时奔跑at。这就是管道 ( |) 在 shell 中的工作原理。这输出./stopat。这不是你想要的。

at期望命令(您想要稍后运行)作为其标准输入上的字符串。而不是./stop你想要传递的输出细绳说的是./stop。对字符串进行管道传输的基本方法是echo

echo './stop' | at …

这将运行echo并且at.后一个工具将采用前一个工具的输出。输出实际上是./stop.这就是你想要的。

相关内容