通过crontab调度脚本时脚本使用的环境变量与直接在shell中运行脚本时使用的环境变量不同(因为crontab并不知道你所使用的shell,只是简单的设置了HOME、LOGNAME、SHELL和有限的PATH等环境变量),因而可能导致“XXX command not find”的错误或者运行结果不一致的情况。
解决办法有四:
1.在脚本中设置环境变量,如,在cron_job.sh文件中:
#!/bin/bash
source $HOME/.bash_profile
some_other_cmd
当然也可以先把环境变量设置在一个单独的文件中如/path/to/my_env.sh