Output
為什麼這個“at”命令不列印到標準輸出?
我是一個相對的Linux新手。我正在嘗試學習如何使用
at
,以便我可以安排任務在以後開始,而無需使用sleep
. 我一直在看這個以前的問題尋求幫助。我的問題是,在我創建的以下範例 bash 腳本中,為什麼**“正在執行”**從來沒有——據我所知——列印到標準輸出(即我的 bash 控制台)?
#!/bin/bash echo "Started" at now + 1 minutes <<EOF echo "Running" EOF echo "Finished"
我看到的唯一輸出是,例如:
Started warning: commands will be executed using /bin/sh job 3 at Fri Jul 12 17:31:00 2013 Finished
警告中是否找到了我的問題的答案?如果是這樣,
/bin/sh
與標準輸出有何不同?
因為
at
不會在您登錄的使用者會話的上下文中執行命令。這個想法是您可以安排一個命令在任意時間執行,然後註銷,系統將在指定時間執行該命令。請注意,手冊頁
at(1)
特別說明(我的重點):如果有的話,使用者將收到來自他的命令的標準錯誤和標準輸出。郵件將使用命令 /usr/sbin/sendmail 發送。
因此,您應該檢查您的本地郵件假離線,或者如果失敗,則檢查本地系統郵件日誌。/var/spool/mail/$USER 可能是一個不錯的起點。
另請注意,“開始”和“完成”源自外部腳本,並且它們本身與根本無關
at
。您可以取出它們或at
呼叫,您將獲得基本相同的結果。