如何在 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

更新於: 2021-07-31

917 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告