以下内容应该在今天上午 9:00 在我的 Linux 命令行上打印"hello"(或一些提醒):
$ at 9:00AM
warning: commands will be executed using /bin/sh
at> echo "hello"
at> <EOT>
但是,在指定的时间,没有任何反应。
我有一个空etc/at.deny
,没有/etc/at.allow
文件,因此使用该命令的权限应该没有任何问题。此外,在上午 9:00 写入文件可以:
$ at 9:00AM
at> echo "hello" > /home/mart/hello.txt
at> <EOT>
$ cat /home/mart/hello.txt
hello
所有作业都按计划显示,我只是无法将任何输出到终端窗口(我在带有终结者的 Crunchbang Linux 上)。为什么?我是否需要以某种方式指定该输出的窗口?
感谢您的任何帮助!
at
从无法访问终端的守护程序(atd
)运行命令。因此,脚本的输出不会出现在终端中(除非您在命令中通过管道传输到正确的tty
)。
相反,它按照man at
所说的那样做:
用户将收到标准错误和其命令的标准输出(如果有)。
如果您的计算机配置正确,您可以使用mail
访问这些报告。
如果要at
写入终端,可以尝试将输出管道传输到write
,这会将消息写入用户的 TTY,或者如果要写入连接到系统的每个终端,可以wall
。
好的,nneonneo的解释导致我使用wall
,它向所有用户发送消息。因此,在终端窗口中设置自我提醒可以像这样完成:
$ at 9:00AM
warning: commands will be executed using /bin/sh
at> echo "hello" | wall
at> <EOT>