有时候一些windows下处理不当的sh脚本文件放到linux下执行报错, 提示存在换行符
原因主要就是window下EOL行结束是 \r\n 两个字符, 而linux,unix下是 \n 单字符。
以下vim命令做确认
#显示回车符(\r), 具体的在vim环境中会显示为 ^M 符号
:e ++ff=unix %
#显示换行符(\n), 具体的再vim环境下回显示为 $ 符号。
#此命令同时会显示制表符, 在vim环境中显示为 ^I 符号
:set list
以上两条vim指令的查看效果也可通过一条shell指令实现
cat -A filename
删除回车符, 使shell脚本能正常运行
:%s/\r//g
也可通过shell指令将windows下格式文件转换为linux下格式文件
dos2UNIX filename
附:
将linux下格式文件转换为windows下格式文件
UNIX2dos filename
来源:oschina
链接:https://my.oschina.net/u/2400083/blog/508912