现象:我本地编写了shell脚本,拷贝到某台SUSE11服务器上执行正常,到suse10机器上就报错了
通常情况下这个错误的原因有以下几个
1、可能是没有执行权限;
2、可能是32位机器跑了64位写的程序;
3、可能用了ARM机器跑X86生成的代码。
然而我这个就是个shell文件,不至于啊,一Google也没有类似案例,用file命令一查,清楚了
# file newMemEnv.sh
newMemEnv.sh: UTF-8 Unicode text正常机器上
# file newMemEnv.sh
newMemEnv.sh: UTF-8 Unicode (with BOM) text问题清楚了,我在windows下编辑的文件虽然是UTF-8的,但是windows加上了隐藏字符,导致linux下执行时解析shell文件报错,不认为是可执行文件
使用notepadd++修改编码为UTF 无BOM后,问题解决
为什么拷贝过去到suse11上没问题,suse10上有问题呢?正好suse11的bash兼容了bom字符处理了呗

本文探讨了在不同Linux发行版间移植shell脚本时遇到的问题,特别是由于Windows编辑器产生的BOM标记导致SUSE10系统无法正确执行脚本的情况,并提供了具体的解决方案。
1305

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



