Linux脚本执行报错bad interpreter

2021-04-20  本文已影响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 
上一篇 下一篇

猜你喜欢

热点阅读