我在哪里可以设置 crontab 将使用的环境变量?
在正常情况下,我们利用的在.bash_profile或.bashrc的在Ubuntu的情况下和zshrc在MacOS中的情况下,要设置我们的环境变量,然后将这些变量是我们要在终端上提供给我们无处不在。
让我们考虑一个简单的例子,我们在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将允许您的cronshell脚本选择您想要的任何环境变量。
输出结果
sh-3.2# ./sample.sh /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Library/Apple/usr/bin