`
zhb8015
  • 浏览: 397247 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

syntax error near unexpected token

阅读更多

        shell脚本,在自己机器上运行正常,给同事,运行报错syntax error near unexpected token `,左看右看shell脚本没有问题,没有办法google搜索,发现一位仁兄讲的挺好,内容如下:

      用命令vi -b 打开你的SHELL脚本文件,你会。发现每行脚本最后多了个^M。

  那么接下来就要搞清楚这个^M是什么东东?

  long long ago.....  老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,<CR>,ASCII码为0D),另一个字符把纸上移一行 (称为换行, <LF>,ASCII码为0A)。当计算机问世以后,存储器曾经非常昂贵。有些人就认定没必要用两个字符来表示行尾。UNIX 开发者决定他们可以用 一个字符来表示行尾,Linux沿袭Unix,也是<LF>。Apple 开发者规定了用<CR>。开发 MS-DOS以及Windows 的那些家伙则决定沿用老式的<CR><LF>。

  因为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”键生成的。

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

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

  b.cat filename1 | tr -d "/r" > newfile 去掉^M生成一个新文件,还有sed命令等,凡是可以替换的命令都是可以用来新生成一个文件的。

 

P:其实上面方法不太好用,这里有更简单的方法,不要怪我说的太晚,觉得这样大家能多了解点。。哈哈

 

http://jingyan.baidu.com/article/9f63fb91d014b8c8410f0e7a.html

分享到:
评论

相关推荐

    运行Shell文件.sh报错syntax error near unexpected token `$’do\r”

    start.sh: line 17: syntax error near unexpected token `$'do\r'' 'tart.sh: line 17: ` do 原因 运行cat -v start.sh,如果内容结尾为是^M,这是因为你所处理的文件换行符是dos格式的”\r\n”,你可能在windows...

    CentOS7运行.sh脚本提示syntax error: unexpected end of file的解决方法

    在Linux系统中,尤其是CentOS 7这样的发行版,运行.sh脚本时遇到"**syntax error: unexpected end of file**"或"**syntax error near unexpected token 'fi'**"这样的错误,通常是因为脚本文件的格式问题。...

    ntp-4.2.4p7源码包

    NTP(Network Time Protocol)是一种用于同步网络中计算机时间的协议。ntp-4.2.4p7源码包是NTP的一个版本,它包含了实现NTP服务所需的所有源代码和资源。在这个版本中,你可以找到编译和配置NTP服务器以确保网络设备...

    dex2jar反编译工具

    dex2jar2.0版本,可以将.dex反编成jar的简单软件,使用方法:运行dex2jar.jar

    linux自动化安全检查脚本

    2、如果报错:syntax error near unexpected token,执行:sed -i 's/\r$//' linuxinspect.sh) 支持linux系统(centos)进行自动化的安全检测,包括账号策略检查、重要文件权限检查、ssh配置检查、日志检查等。 ...

    Unexpected token c in JSON at position 0 报错信息及解决

    在编程过程中,我们可能会遇到各种错误,其中"Unexpected token c in JSON at position 0"是一个常见的JavaScript解析错误,通常发生在尝试使用`JSON.parse()`函数解析一个预期为JSON格式的字符串时,但该字符串实际...

    a982338665#lf-file-build-tool#shell脚本执行错误1

    1.错误:syntax error near unexpected token '$'\r'' 2.原因:windows换行符格式和linux换行格式不兼容 2

    PHP如何抛出异常处理错误

    PHP中的异常处理是通过面向对象的方式实现的,它允许在程序运行时出现错误的情况下,程序流程能够得到适当的控制。异常处理机制通过抛出异常和捕获异常来实现,当程序执行中发生异常情况时,可以中断原有的执行流程...

    此代码无法通过编译此代码无法通过编译

    例如,"error: cannot find symbol" 或 "syntax error near unexpected token"。 2. **检查错误行**:根据错误信息,仔细检查出错的代码行,看看是否有明显的语法错误或遗漏。 3. **逐步调试**:如果错误信息不够...

    parse-json:解析JSON有更多有用的错误

    SyntaxError: Unexpected token } */ parseJson ( json ) ; /* JSONError: Unexpected token } in JSON at position 16 while parsing near '{ "foo": true,}' 1 | { 2 | "foo": true, &gt; 3 | } | ^ */ parseJson ...

    shell 编程中空格的使用方法

    忽略这些规则将导致Shell抛出诸如`syntax error near unexpected token 'then'`之类的错误消息。 #### 五、其他常见的空格规则 1. **操作符之间的空格**:当使用条件测试操作符时,操作符之间也需要用空格分开。...

    C语言错误解释和总结

    - **Unexpected token 'xxx'**: 意外的标记“xxx”,可能是因为代码中出现了不符合预期的字符或指令。 - **Uninitialized variable 'xxx' used**: 未初始化的变量“xxx”被使用,可能会导致程序行为不确定。 - **...

Global site tag (gtag.js) - Google Analytics