Bash
檢查腳本是否由 cron 啟動,而不是手動呼叫
cron 在執行程序時是否設置了任何變數?如果腳本是由 cron 執行的,我想跳過一些部分;否則呼叫這些部分。
我如何知道 Bash 腳本是否由 cron 啟動?
我不知道
cron
預設情況下它會對它的環境做任何可以在這裡使用的事情,但是你可以做一些事情來獲得預期的效果。
myscript
1) 對腳本文件進行硬連結或軟連結,以便例如myscript_via_cron
指向同一個文件。$0
然後,當您想有條件地執行或省略程式碼的某些部分時,您可以測試腳本內部的值。將適當的名稱放入您的 crontab 中,然後您就設置好了。
- 向腳本添加一個選項,並在 crontab 呼叫中設置該選項。例如,添加一個 option
-c
,它告訴腳本執行或省略程式碼的適當部分,並添加-c
到您的 crontab 中的命令名稱中。當然,cron可以設置任意環境變數,所以你可以
RUN_BY_CRON="TRUE"
在你的 crontab 中放一行,然後在你的腳本中檢查它的值。