我们经常会在linux/unix/centos下面写脚本放在任务计划里面自己执行,但是有的时候会遇到脚本手动执行没问题,但是crontab里面就不行了;这个是环境变量的原因。
这个问题很简单,就是因为你手动执行的时候( 通过su 或者直接登入用户的也就是相当于执行了用户家目录下面的 .bash_profile文件 )环境变量就生效了;
而你通过crontab的时候,环境变量没生效,所以脚本执行失败(这个脚本有要使用到相应环境变量的),而有的脚本不需要使用环境表里,就没问题,比如需要使用java环境变量
的应用等;
解决办法就是在你的脚本申明后面添加激活环境变量命令即可:
#!/bin/bash/
source /home/user/.bash_profile
或者
#!/bin/bash/
. /home/user/.bash_profile
或者
#!/bin/bash/
/bin/bash /home/user/.bash_profile
等只要可以激活环境变量的命令都可以的。