我在 cron.d 中有一个条目:
31 17 * * * root /home/some_user/.bash_profile; /home/some_user/bin/some_script
配置文件设置了一个特定路径,我回显配置文件中的当前路径以确保其正确。但是,当脚本执行时,其中的命令失败,因为它不在 PATH 中,当我在脚本中显示当前 PATH 时 - 它不是配置文件中设置的。
为什么配置文件中设置的 PATH 不能保留到脚本的执行中?
答案1
为了设置所需的环境变量,您需要.bash_profile
使用 来获取文件. /home/some_user/.bash_profile
。在您的例子中,您正在执行 bash_profile 文件,它将基本上执行该文件并退出 shell。下次运行 some_script 时,它将从新的环境变量开始。检查此链接 -采购与执行
另一个选项是PATH
在 crontab 文件的顶部设置环境变量。这样,其余脚本就可以看到它了。