4 个解决方案
#1
直接原因是语言设置问题。crontab运行时语言可能是英文,需要配置LANG或LC_ALL环境变量。这俩的关系楼主再百度一下吧,我也记不清谁覆盖谁了。
正常登录shell运行程序,会执行到.bashrc或.bash_profile或.profile之类。请查看你登录shell的流程。
这个流程中是否有设置语言的地方。
另外,确定你登录用的是bash还是sh。
在很多系统中,bash和sh虽然链接的是同一个文件,但确实不同的shell,表现为不同的行为。比如bash比sh更多一些语法,sh不会去读.bashrc之类。
正常登录shell运行程序,会执行到.bashrc或.bash_profile或.profile之类。请查看你登录shell的流程。
这个流程中是否有设置语言的地方。
另外,确定你登录用的是bash还是sh。
在很多系统中,bash和sh虽然链接的是同一个文件,但确实不同的shell,表现为不同的行为。比如bash比sh更多一些语法,sh不会去读.bashrc之类。
#2
我在调用脚本的前面加上了 . /etc/profile;/bin/sh 解决了,,不过我想应该还有其他的办法是把
#3
根本原因是: Cron执行时和手动执行的环境变量不一样。
#4
解决方案是对的,主要就是环境变量问题,语言设置方面不同
#1
直接原因是语言设置问题。crontab运行时语言可能是英文,需要配置LANG或LC_ALL环境变量。这俩的关系楼主再百度一下吧,我也记不清谁覆盖谁了。
正常登录shell运行程序,会执行到.bashrc或.bash_profile或.profile之类。请查看你登录shell的流程。
这个流程中是否有设置语言的地方。
另外,确定你登录用的是bash还是sh。
在很多系统中,bash和sh虽然链接的是同一个文件,但确实不同的shell,表现为不同的行为。比如bash比sh更多一些语法,sh不会去读.bashrc之类。
正常登录shell运行程序,会执行到.bashrc或.bash_profile或.profile之类。请查看你登录shell的流程。
这个流程中是否有设置语言的地方。
另外,确定你登录用的是bash还是sh。
在很多系统中,bash和sh虽然链接的是同一个文件,但确实不同的shell,表现为不同的行为。比如bash比sh更多一些语法,sh不会去读.bashrc之类。
#2
我在调用脚本的前面加上了 . /etc/profile;/bin/sh 解决了,,不过我想应该还有其他的办法是把
#3
根本原因是: Cron执行时和手动执行的环境变量不一样。
#4
解决方案是对的,主要就是环境变量问题,语言设置方面不同