小生遇到这个报错是使用tftp将本地文件传输到Linux运行时报错,未注意不同的编码格式语句的结尾隐藏符号

原因:

回车换行等格式有误

使用以下命令打开shell脚本,发现每行末尾都有一个^M

vim -b xxx.sh

解决办法:

法1:

直接使用以下命令修改格式:

sed -i ‘s/\r//g’ xxx.sh

再次使用vim -b xxx.sh去打开发现^M已消失!

法2:

使用NotePad++或其他一些编辑器修改格式

可参考博文:syntax error near unexpected token $’do\r ———————————————— 版权声明:本文为CSDN博主「枫雨血痕」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lyxuefeng/article/details/108255068 运行出错:syntax error near unexpected token$’do\r”

写shell,运行出错:syntax error near unexpected token `$’do\r”

【解决过程】

1.网上搜了下,参考:linux shell脚本报错:syntax error near unexpected token `

然后去notepad++中,视图->显示符号->显示所有符号,然后就看到了预料到的,所有的回车换行都是windows的CR LF:

即可将所有的 CR LF,转换为LF:

然后再运行此shell脚本,即可正常运行了。

linux/cygwin下面的shell脚本出现错误:

syntax error near unexpected token `$’do\r”

是由于该脚本文件是在windows环境下创建编辑的,其默认是将所有的回车变成:

CR加上 LF,而Linux/Unix中的回车只是LF,所以导致解释器不认,出现此错误。

解决办法就是,将所有的CRLF转换为LF即可。

https://zhidao.baidu.com/question/486000774.html 替换方法
1、首bai先打开notepad++的主程序,需要在程序的du顶栏菜单栏zhi打开视图的按钮。dao
在这里插入图片描述
2、接着就会显示zhuan符号->显示所有的字符。
在这里插入图片描述

3、可以看到CRLF就是shu车换行符,箭头就是制表符缩进,点就是空格。
在这里插入图片描述

4、然后点击顶栏菜单的搜索按钮,找到“查找”选项。
在这里插入图片描述

5、查看那里输入\r\n,同时需要把扩展打开,这样就可以正常的搜索字符串。
在这里插入图片描述

6、接着就可以切换到替换的选项卡。就可以选择全部替换\r\n为空格,这样就实现了替换成换行的操作。
在这里插入图片描述

转换的方法有多种,比如用dos2unix,或用此处的notepad++帮我们转换,都可以。

————————————————
版权声明:本文为CSDN博主「Super-Henry」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lh756437907/article/details/92803348

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐