zoukankan      html  css  js  c++  java
  • /bin/sh^M: 坏的解释器: 没有那个文件或目录

    在Windows环境下写了个shell脚本,复制到Linux下使用./echo.sh运行发现如下错误:

    /bin/sh^M:损坏的解释器: 没有那个文件或目录

    出现这个问题的原因如下:在Windows下,每一行的结尾是 ,但是在Linux下文件的结尾是 。因此在Windows环境下编辑过的文件比在Linux下编写的文件每一行结尾多出来一个字符

    因此,想要在Windows环境下编辑的脚本应该保存为UNIX而不是DOS格式,很多文本编辑器都支持另存为Unix格式的功能。

    如果脚本文件保存时使用了DOS格式,我们就可以通过以下几种方法来将它转换为UNIX格式:

    1.在终端使用命令:tr -d ' ' < echo.sh >ecc.sh   (将echo.sh替换为自己的文件名,新生成的ecc.sh中删除了' '可以正常运行) 

    2.用vim打开该脚本,在命令行模式下输入:set ff=unix 来转换.

     

    3.在终端使用命令:sed -i 's/ $//' echo.sh  (将echo.sh替换为自己的脚本文件名)

  • 相关阅读:
    topcoder srm 681 div1
    topcoder srm 683 div1
    topcoder srm 684 div1
    topcoder srm 715 div1
    topcoder srm 685 div1
    topcoder srm 687 div1
    topcoder srm 688 div1
    topcoder srm 689 div1
    topcoder srm 686 div1
    topcoder srm 690 div1 -3
  • 原文地址:https://www.cnblogs.com/sakura404/p/6824936.html
Copyright © 2011-2022 走看看