昨天写了一个脚本,在本地执行,测试很多次,都没有问题。发给别人,上传到服务器,在服务器上执行就会报错。怀疑是别人在不同的系统中复制,粘贴,出现了格式和编码的问题。
于是验证:
cat -v 文件名 来查看,可以输出不打印的一些特殊字符。发现很多 M-BM- 字符。文件的空格被加上了 "M-BM-"就是不可见的特殊字符,所以shell脚本运行时就会报错找不到命令。
解决方法:
可以用sed命令处理一下文件,命令如下:
sed 's/\xc2\xa0/ /g' -i 文件路径
就可以把"M-BM-" 替换成空格。最后可以正确执行