为什么echo命令不能与at命令一起使用?


14

当我键入:

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:


23

at处运行的命令不在其注册终端中运行。通常这是没有意义的:终端可能不再存在,或者可能由其他用户使用。您甚至可能在命令运行时注销。

at命令的输出将通过电子邮件发送给您。那是本地Unix电子邮件,而不是您可能在某些电子邮件程序中设置的任何外部POP或IMAP帐户。如果未设置本地电子邮件,该命令的输出将丢失。如果未设置本地电子邮件,则本指南可能会对您有所帮助。

如果要使at命令与终端交互,则需要使用显式重定向。例如:

echo "echo hello >$TTY" | at now + 1 min

请注意,在此代码段中,变量TTY由外壳扩展,因此对的输入at类似于echo hello >/dev/pts/42

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.