遇到一个头疼的问题,shell脚本手工执行结果正确,但是放到crontab中执行,结果却是错误的。
脚本执行的路径肯定是没有问题的,比较怀疑crontab执行和手工执行两者的环境不同,在手工执行脚本时,通过ssh登录到服务器,其间会自动执行root目录下的.bash_profile(注意前面有一个点,此文件是隐藏文件),为此,在shell脚本的最前面加上下面语句:source ~/.bash_profile,再通过crontab来执行,结果正确。
本文探讨了Shell脚本在手工执行与crontab执行之间的环境差异,通过加入source ~/.bash_profile确保脚本执行环境一致,从而解决了执行结果不一致的问题。
遇到一个头疼的问题,shell脚本手工执行结果正确,但是放到crontab中执行,结果却是错误的。
脚本执行的路径肯定是没有问题的,比较怀疑crontab执行和手工执行两者的环境不同,在手工执行脚本时,通过ssh登录到服务器,其间会自动执行root目录下的.bash_profile(注意前面有一个点,此文件是隐藏文件),为此,在shell脚本的最前面加上下面语句:source ~/.bash_profile,再通过crontab来执行,结果正确。

被折叠的 条评论
为什么被折叠?