求教crontab执行和shell执行的区别

sh/bash/dash/ksh/zsh等Shell脚本
回复
shyl
帖子: 3
注册时间: 2007-09-18 22:19

求教crontab执行和shell执行的区别

#1

帖子 shyl » 2009-04-14 16:06

我写了个脚本,去解压一个abc.rar文件。该rar文件里面有中文文件名的pdf文件。因为rar文件是在windows生成的,所以我怀疑这些文件名的编码是gb2312。

#!/bin/bash
rar e abc.rar *.pdf ~/test/


该脚本在bash shell下面手工执行没有问题。这里是说文件能够被解压,文件名显示中文。(因为我的pietty是unicode编码的,所以被解压出来的文件名也是unicode编码的--这就是我想要的结果)

但是如果我把这个脚本放入crontab,让系统自动执行时,出现了两个情况
1、解压出来的文件名变成了乱码。
2、只有一部分pdf被解压出来。

所以,我想发帖询问一下,造成这个问题的可能的原因,并寻找一个比较好的解决方案。另外,我这里做了一些研究:

如果把脚本改成
#!/bin/bash
export LANG=zh_CN.UTF-8
rar e abc.rar *.pdf ~/test/
那解压出来的文件名都正常(也就是unicode编码),但是文件数还是缺。

另外,手工调用~/.bashrc:
#!/bin/bash
source ~/.bashrc
rar e abc.rar *.pdf ~/test/

不能解决任何问题。文件名还是乱码,并且文件还是缺。
回复