开发者社区> 技术小阿哥> 正文

linux的shell脚本报错“syntax error near unexpected token `”的解决

简介:
+关注继续查看

    今天写了一个shell脚本,老报错检查了一下基本的语法并没有发现错误。后来经过百度解决掉了,现总结如下。 

    错误现象:执行shell脚本,老报错“syntax error near unexpected token `”

    解决办法:vim -b example.sh打开文件,发现文件每一行的末尾多了一个^M,这个问题在使用vim example.sh查看是看不见的,只能通过报错来判断使用vim -b才能发现问题。

wKioL1idxdbzc0yuAAATvQhmgZ0815.pngwKioL1idxkDhTwRcAAAjrGbrjzk867.png

    因为MS-DOS及Windows是回车+换行来表示换行,因此在Linux下用Vim查看在Windows下用VC写的代码,行尾后的“^M”符号,表示的是符。

  在Vim中解决这个问题,很简单,在Vim中利用替换功能就可以将“^M”都干掉,键入如下替换命令行:

  1)vi -b setup.sh

  2)在命令编辑行<就是: 按ESC键 然后shift+:冒号>输入:%s/^M//g

  注意:上述命令行中的“^M”符,不是“^”再加上“M”,而是由“Ctrl+v”、“Ctrl+M”键生成的。

  这样替换掉以后,保存就可以执行了。当然还有其他的替换方式比如:

    一些linux版本有 dos2unix 程序,可以用来去除^M。

    错误原因:写脚本时,先使用了UltraEdit编辑好了脚本,然后存在了版本是windos的电脑上,随后传输到linux系统内去执行的。可能是存储文本时启用了默认的DOS格式。




本文转自 ping9527 51CTO博客,原文链接:http://blog.51cto.com/babyhanggege/1896833,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux下如何根据进程 名称/pid 结束对应进程(含 xargs kill -9报错问题)
Linux下如何根据进程 名称/pid 结束对应进程(含 xargs kill -9报错问题)
44 0
linux 下 root 权限执行 npm install 报错:Error:EACCES:permission denied ‘xxx‘?
linux 下 root 权限执行 npm install 报错:Error:EACCES:permission denied ‘xxx‘?
16 0
linux中docker search结果报错
linux中docker search结果报错
20 0
eclipse的jar包在Linux中报错
eclipse的jar包在Linux中报错
51 0
制作LINUX安装DEB,脚本中的函数报错怎么办?
制作LINUX安装DEB,脚本中的函数报错怎么办?
25 0
LINUX打印机报错:ipp error(1034, client-error-document-format-not-supported)
LINUX打印机报错:ipp error(1034, client-error-document-format-not-supported)
308 0
OpenIN2 Linux 编译OpenCV 报错undefined reference to `xxx@xxx‘
OpenIN2 Linux 编译OpenCV 报错undefined reference to `xxx@xxx‘
34 0
Linux Tensorflow安装报错 Cannot uninstall wrapt
Linux Tensorflow安装报错 Cannot uninstall wrapt
20 0
Linux 服务器报错Permission denied: ‘/root/.cache‘ ,PYTHON_EGG_CACHE无权限的问题
Linux 服务器报错Permission denied: ‘/root/.cache‘ ,PYTHON_EGG_CACHE无权限的问题
52 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Shell 脚本速查手册
立即下载
Decian GNU/Linux安全合规之路
立即下载
冬季实战营第二期:Linux操作系统实战入门
立即下载