美文网首页
Linux脚本执行报错bad interpreter

Linux脚本执行报错bad interpreter

作者: 明训 | 来源:发表于2021-04-20 23:27 被阅读0次

    背景说明

    现场项目脚本通过gitlab源码管理后发现无法正常执行出现报错问题

    /bin/bash^M: bad interpreter: No such file or directory
    /bin/sh^M: bad interpreter:没有那个文件或目录
    /bin/bash^M: 坏的解释器: 没有那个文件或目录
    

    查看文件的格式

    vim start.sh
    

    在命令模式下输入

    :set ff ?
    

    如果出现fileforma=dos那么就基本可以确定是这个问题了

    问题原因

    由于windows上换行符为CR LF而在Linux下是 LF 导致出现上述问题

    解决方案

    VIM

    在命令模式下

    :set fileformat=unix
    :wq
    

    或者

    :set ff=unix
    :wq
    

    此时再次运行即可解决问题。

    notepad++

    打开文件,选中编辑,选中文档格式转换,选中转换为UNIX格式

    命令替换

    直接执行如下命令

    sed -i "s/\r//" start.sh
    

    dos2unix

     busybox dos2unix start.sh 
    

    相关文章

      网友评论

          本文标题:Linux脚本执行报错bad interpreter

          本文链接:https://www.haomeiwen.com/subject/jwnolltx.html