我在cron.d中有一个条目:
31 17 * * * root /home/some_user/.bash_profile; /home/some_user/bin/some_script
configuration文件设置了一个特定的path,我回显configuration文件中的当前path,以确保其正确。 但是,当脚本执行时,其中的一个命令会失败,因为它不在PATH中,当我在脚本中显示当前的PATH时,它不是在configuration文件中设置的。
为什么configuration文件中的PATH不能存活到脚本执行中?
为了设置所需的环境variables,您需要使用.bash_profile文件. /home/some_user/.bash_profile . /home/some_user/.bash_profile 。 在你的情况下,你正在执行bash_profile文件,它将基本上执行该文件并退出shell。 下一次运行some_script时,将以新的环境variables开始。 检查这个链接 – 采购vs执行
另一个选项是在crontab文件的顶部设置PATH环境variables。 这样,其余的脚本就可以看到它。