我是相对的Linux新手。我正在尝试学习使用方法,at
以便可以安排任务在以后的某个时间开始使用,而无需使用sleep
。我一直在寻找这个先前的问题以寻求帮助。
我的问题是,在我创建的以下示例bash脚本中,为什么就我所知,“运行”从未打印到标准输出(即我的bash控制台)上?
#!/bin/bash
echo "Started"
at now + 1 minutes <<EOF
echo "Running"
EOF
echo "Finished"
例如,我看到的唯一输出是:
Started warning: commands will be executed using /bin/sh job 3 at Fri Jul 12 17:31:00 2013 Finished
在警告中是否找到我的问题的答案?如果是这样,/bin/sh
与标准输出有何不同?
因为at
不会在您登录的用户会话的上下文中执行命令。这个想法是,您可以安排一个命令在任意时间运行,然后注销,系统将负责在指定时间运行该命令。
请注意,手册页上at(1)
专门说了(我的重点):
将向用户邮寄标准错误和命令中的标准输出(如果有)。邮件将使用命令/ usr / sbin / sendmail发送。
因此,您应该检查本地邮件后台处理程序,否则,请检查本地系统邮件日志。/ var / spool / mail / $ USER可能是一个不错的起点。
另请注意,“开始”和“完成”源自外部脚本,而in本身与它们完全无关at
。您可以删除它们或at
调用它们,并且您将获得基本上相同的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句