在 cron 作业中运行 bash_profile

在 cron 作业中运行 bash_profile

我遇到了一个问题,我的 cron 脚本没有加载环境变量,因此我添加了以下行:

#!/bin/sh
bash /root/.bash_profile

这似乎没有效果,路径变量没有正确设置。如何运行 bash_profile 脚本

答案1

bash /root/.bash_profile将创建一个新bash进程,运行该文件(并且我假设在执行此操作时设置了您的环境变量),然后退出,并带着那些新设置的环境变量。

尝试. /root/.bash_profile。 或者source /root/.bash_profile。 这将在当前 bash 进程中执行该文件,因此您的环境变量将可供当前进程使用。

如果您要进行 bash 风格的调用,您可能还想使用#!/bin/bash而不是。#!/bin/sh

答案2

. /root/.bash_profilesource /root/.bash_profile. 表示在当前 shell 中运行该文件。您的方法.bash_profile在子 shell 中运行,这会在子 shell 中设置变量,然后此子 shell 退出,并带走这些变量。

答案3

如果您想在文件中包含变量.bash_profile,则需要在脚本中引用它。

简单执行脚本不会包含导出的变量。

相关内容