我遇到了一个问题,我的 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_profile
或source /root/.bash_profile
. 表示在当前 shell 中运行该文件。您的方法.bash_profile
在子 shell 中运行,这会在子 shell 中设置变量,然后此子 shell 退出,并带走这些变量。
答案3
如果您想在文件中包含变量.bash_profile
,则需要在脚本中引用它。
简单执行脚本不会包含导出的变量。