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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的shell脚本报错“syntax error near unexpected token `”的解决相关的知识,希望对你有一定的参考价值。

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

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

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

技术分享技术分享

    因为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格式。


 



本文出自 “小小知识库” 博客,请务必保留此出处http://babyhanggege.blog.51cto.com/11741640/1896833

以上是关于linux的shell脚本报错“syntax error near unexpected token `”的解决的主要内容,如果未能解决你的问题,请参考以下文章

运行shell脚本报错```$'\r':command not found```

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

关于windows下编写的shell脚本在linux下无法运行报错问题

Linux Shell脚本报错:command not found

shell脚本运行报错$' ': command not found

shell脚本报错