Bash
我希望 bash 腳本僅在我執行時才回顯,如果由 cron 作業執行則不回顯
如果腳本是由我執行的,我想回顯到終端,或者如果它是通過 cron 作業完成的,我想回顯到日誌文件。
Ubuntu 16.04
例子:
#!/bin/bash if [ ***** ]; then echo "You executed this script just now !"; else echo "You were executed by the server cron at ${date}" >> example.log fi
我重寫了上面的內容,因為我認為這將是一種更簡單的解釋方式。這是一個更直接、更清晰的例子。
試試這個 :
if [[ -t 0 ]]; then echo "executed from terminal" elif [[ $(< /proc/$PPID/comm) == cron* ]]; then echo "executed by cron" else echo "executed outside of a terminal" fi
作為一個選項,您可以在 crontab 文件中設置環境變數,然後讓腳本檢查該變數。即在你的 crontab 中添加 CRON=yes
在你的腳本中
如果
$$ [ “$CRON” = “yes” $$]; 然後 或者只是檢查是否 $ CRON is defined [[ -z " $ 克朗" ]]