以下内容应于今天上午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上)。为什么?我是否需要以某种方式为该输出指定窗口?
感谢您的帮助!
答案 0 :(得分:1)
at
运行来自守护程序(atd
)的命令,该守护程序无法访问您的终端。因此,脚本中的输出不会出现在您的终端中(除非您在命令中使用右侧tty
)。
相反,它按man at
说:
如果有的话,用户将通过命令邮寄标准错误和标准输出。
如果您的机器配置得当,您可以使用mail
访问这些报告。
如果您想要at
写入您的终端,您可以尝试将输出汇总到write
,将消息写入用户的TTY,或者wall
,如果您想要写入连接到系统的每个终端。
答案 1 :(得分:0)
好的, nneonneo的解释促使我使用wall
,它向所有用户发送消息。因此,在终端窗口中设置自己的提醒可以这样做:
$ at 9:00AM
warning: commands will be executed using /bin/sh
at> echo "hello" | wall
at> <EOT>