shell脚本报错换行符syntax error near unexpected token \r

让人想犯罪 __ 提交于 2020-02-29 22:00:43

有时候一些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


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!