当我键入:
at now + 1 min
at>play /usr/share/sounds/startrek.wav
at>ctrl+d
它可以正常工作,因此一分钟后实际上会播放声音。
但是,当我键入:
at now + 1 min
at>echo "Teresa the green vegetable lover"
at>ctrl+d
我没有从外壳程序得到任何错误响应,但是1分钟后也没有显示任何文本。
当我键入:
at now + 1 min
at>play /usr/share/sounds/startrek.wav
at>ctrl+d
它可以正常工作,因此一分钟后实际上会播放声音。
但是,当我键入:
at now + 1 min
at>echo "Teresa the green vegetable lover"
at>ctrl+d
我没有从外壳程序得到任何错误响应,但是1分钟后也没有显示任何文本。
Answers:
at处运行的命令不在其注册终端中运行。通常这是没有意义的:终端可能不再存在,或者可能由其他用户使用。您甚至可能在命令运行时注销。
at命令的输出将通过电子邮件发送给您。那是本地Unix电子邮件,而不是您可能在某些电子邮件程序中设置的任何外部POP或IMAP帐户。如果未设置本地电子邮件,该命令的输出将丢失。如果未设置本地电子邮件,则本指南可能会对您有所帮助。
如果要使at命令与终端交互,则需要使用显式重定向。例如:
echo "echo hello >$TTY" | at now + 1 min
请注意,在此代码段中,变量TTY
由外壳扩展,因此对的输入at
类似于echo hello >/dev/pts/42
。