背景说明
现场项目脚本通过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
网友评论