zoukankan      html  css  js  c++  java
  • shell脚本报错:"syntax error: unexpected end of file" 原因和解决

    在windows用notepad++编辑的shell脚本,拷贝到centos执行时,报错如下:

    导致报错的可能原因:

    原因1:Windows的文本默认是dos格式,换行符 CR LF。Linux的文本是unix格式,换行符 LF。另外,Mac系统下文本换行符为 CR

    在notepad++点击“显示所有字符”即可看到换行符,如下图:

    解决1:将dos格式转成unix格式,再执行脚本就不会报错了。

    转换方式1:在windows中,notepad++编辑器右下角可直接修改文档格式,如下图:

    转换方式2:在Linux中,用vim打开脚本

    用 :set ff 可查看文件格式

    用 :set ff=unix 可设置文件格式为unix:

     

     

    转换方式3:在Linux中,用dos2unix工具转换:

    yum -y install dos2unix

    dos2unix myScript.sh

    原因2:shell脚本语法格式错误。

    解决2:用以下命令快速检查脚本是否有语法错误:

    sh -n myScript.sh

    命令有输出则是有语法错误,检查脚本,更正错误即可。

     PS:用"-n" 选项只会读取shell脚本,用于测试shell脚本是否存在语法错误,但不会实际执行脚本。

    ================== 我的报错原因:=================

    排查了很久,发现不是格式问题导致的报错,而是语法错误导致的,如下图:

    2019-12-25,Merry Christmas~ 

  • 相关阅读:
    段落某些子段高量
    CSS 知识点
    PHP 表单与音频知识点及使用
    PHP 标签、表格的知识点与超链接的结合使用
    PHP课程第一天知识点
    java ArrayList集合
    java 引用数据类型(类)
    java 方法重载
    java 方法
    java 二维数组
  • 原文地址:https://www.cnblogs.com/iouwenbo/p/12098796.html
Copyright © 2011-2022 走看看