如何在 crontab 中設定環境變數?
在正常情況下,我們使用 **bash_profile** 或 Ubuntu 中的 **bashrc** 以及 Mac OS 中的 **zshrc** 來設定環境變數,然後這些變數在我們想要使用的任何終端中都可用。
讓我們考慮一個簡單的例子,其中我們在 **bash_profile** 中有一些環境變數,並在終端中使用它。
考慮下面顯示的 **bash_profile** 輸出:
immukul@192 dir1 % cat ~/.bash_profile export JAVA_HOME=$(/usr/libexec/java_home) export PATH=$PATH:/usr/local/node/bin export GOROOT=/usr/local/go export GOPATH=/Users/immukul/go_projects
我們可以看到 **bash_profile** 檔案中存在許多變數,我們只需呼叫其名稱即可在任何終端中使用這些變數。
考慮下面顯示的示例:
echo $GOROOT
輸出
/usr/local/go
現在我們想要能夠訪問 **bash_profile** 或 **bashrc** 中的這些變數,以便在 crontab 中可用。
讓我們首先探索並瞭解 crontab 是什麼。
**crontab** 不過是我們可以在 cron 作業期間執行的一系列命令。cron 作業是一個實用程式,用於在特定時間安排命令的自動執行。
我們可以使用 bash 指令碼透過以下命令啟動 cron 作業:
crontab -e
這將開啟一個檔案,您可以編輯該檔案,在上述檔案中插入 cron 作業 shell 指令碼,然後關閉該檔案。
只需在上述檔案中插入下面顯示的程式碼。
* * * * * sample.sh
上述命令包含 5 個 *,其中每個 * 表示時間,然後跟隨星號。我們有要作為 cron 作業執行的指令碼。在 **sample.sh** 中,我們需要編寫以下命令才能使環境變數對其可用。
考慮下面顯示的示例 **(sample.sh)**:
示例
#!/bin/bash -l echo $PATH for f in *.txt; do mv "$f" "${f// /_}"; done
命令 **#!/bin/bash -l** 將允許您的 cron shell 指令碼選擇任何您想要的環境變數。
輸出
sh-3.2# ./sample.sh /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Library/Apple/usr/bin
廣告