美文网首页
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