Bash
Bash 如果腳本從終端 echo stdout 呼叫到終端,如果從 cron 不回顯輸出
如果像 ./watchdog.sh 一樣呼叫,我希望有一個服務看門狗腳本將狀態回顯到螢幕,但如果它由 cron 執行,則無需回顯輸出。什麼是正確的方法?當腳本在 root 的 crontab 下執行時,stdout 去哪裡了?
對於我執行的許多 cron 作業,我特意製作它們,因此如果在命令行上執行會生成適當的輸出,但如果將相同的腳本放在 crontab 中,我總是將 stdout 和 stderr 都擷取到日誌文件中:
00 12 * * 1-5 /home/aws/bin/myscript.sh >> /home/aswartz/rje/cron.log 2>&1
Cronjob 輸出通過系統的郵件系統發送給使用者。
您可以檢查 stdout 是否是終端:
if [ -t 1 ]; then echo Terminal else # not a terminal, don't echo fi