由于部分命令不支持win系统环境,为了折衷,将部分代码在win系统下运行生成数据文件以及shell脚本,然后将其上传到ubuntu10.04上执行脚本处理。
但是当将shell脚本上传到ubuntu后,执行起来就出现了错误,不能得到正确的中间数据文件,生成的文件名称后面都带‘?’这样一个符号。
网上查阅后说这种原因是说明文件没有正常结束。。。 之后又查阅了部分博客后,博主说这是CR/LF问题,就是在win系统中回车=CR换行=LF而在linux系统下回车换行都是=LF,所以win系统下文件中每行都会多一个CR。验证后的解决方案:
在linux系统中使用vim打开文后,在命令模式下输入:set ff=unix
然后保存文件,之后通过sh执行就OK了。
之后试了下在.vimrc中添加 set ff=unix设置,之后在修改shell文件的时候不再输入这个命令,保存后运行失败。
很多情况下win系统下生成的shell文件到linux下是直接运行的,总不能每次都使用vim进入,设置后保存退出吧! 如果有好的解决方式请留言,我也会继续关注这个。