2012-10-19 75 views
0

下應打印「你好」(或提醒)我的Linux命令行上午9:00今天:呼應「爲」在終端命令失敗

$ at 9:00AM 
warning: commands will be executed using /bin/sh 
at> echo "hello" 
at> <EOT> 

然而,在指定的時間,沒有什麼發生。

我有一個空的etc/at.deny和沒有/etc/at.allow文件,所以不應該有權限使用該命令的任何問題。此外,在9:00 AM寫入文件的工作原理:

$ at 9:00AM 
at> echo "hello" > /home/mart/hello.txt 
at> <EOT> 
$ cat /home/mart/hello.txt 
hello 

所有作業都顯示如期舉行,我只是不能得到任何輸出到終端窗口(我在Crunchbang Linux的終結者)。爲什麼?我是否需要以某種方式指定該輸出的窗口?

感謝您的幫助!

回答

1

at從守護進程(atd)運行命令,該守護進程無法訪問您的終端。因此,腳本的輸出不會出現在您的終端中(除非您在命令中輸入正確的tty)。

相反,它爲man at說:,

用戶將被郵寄從他的命令標準錯誤和標準輸出(如有)。

如果您的機器已經過適當配置,您可以使用mail訪問這些報告。

如果你想有at寫你的終端,你可以嘗試輸出到write,其中寫一條消息到用戶的TTY管道,或wall如果您想寫信給連接到系統的每一個終端。

+0

這就解釋了,非常感謝!然而,閱讀man手冊的'write'讓我看到'wall',這看起來像是我的目的最直接的解決方案。問題解決了,請參閱下一個答案。 – marttt

+0

下一個答案?在這個問題上只有一個答案... – nneonneo

+0

是的,我只是在撰寫我的解決方案作爲答案:) – marttt

0

好的,nneonneo的解釋導致我使用wall,它向所有用戶發送消息。所以在終端窗口中設置自己的提醒可以這樣完成:

$ at 9:00AM 
warning: commands will be executed using /bin/sh 
at> echo "hello" | wall 
at> <EOT>