Bash

檢查腳本是否由 cron 啟動,而不是手動呼叫

  • February 26, 2022

cron 在執行程序時是否設置了任何變數?如果腳本是由 cron 執行的,我想跳過一些部分;否則呼叫這些部分。

我如何知道 Bash 腳本是否由 cron 啟動?

我不知道cron預設情況下它會對它的環境做任何可以在這裡使用的事情,但是你可以做一些事情來獲得預期的效果。

myscript1) 對腳本文件進行硬連結或軟連結,以便例如myscript_via_cron指向同一個文件。$0然後,當您想有條件地執行或省略程式碼的某些部分時,您可以測試腳本內部的值。將適當的名稱放入您的 crontab 中,然後您就設置好了。

  1. 向腳本添加一個選項,並在 crontab 呼叫中設置該選項。例如,添加一個 option -c,它告訴腳本執行或省略程式碼的適當部分,並添加-c到您的 crontab 中的命令名稱中。

當然,cron可以設置任意環境變數,所以你可以RUN_BY_CRON="TRUE"在你的 crontab 中放一行,然後在你的腳本中檢查它的值。

引用自:https://unix.stackexchange.com/questions/46789