我在哪里可以设置 crontab 将使用的环境变量?

在正常情况下,我们利用的在.bash_profile.bashrc的在Ubuntu的情况下和zshrc在Mac OS中的情况下,要设置我们的环境变量,然后将这些变量是我们要在终端上提供给我们无处不在。

让我们考虑一个简单的例子,我们在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_profilebashrc 中拥有的这些变量,以便在 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