执行shell脚本报错 cannot execute binary file

现象:我本地编写了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字符处理了呗

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值