问题 linux下执行.sh 文件出现 no such file or directoryile

问题

linux系统是centos 7.x 发现将windows自动打的包发到centos后执行.sh文件出现如下:

原因

通过查询发现,原来windows的格式不是unix而是其他格式,导致手动发包上去导致该问题。

查询.sh文件的格式,通过vim 打开.sh然后执行如下:

代码语言:javascript代码运行次数:0运行复制
:set ff

结果:

发现是dos格式是有问题,需要转换成unix。

解决方法通过替换解决:代码语言:javascript码运行次数:0运行复制
sed -i 's/\r//'  转化为unix格式
通过改变格式:代码语言:javascript代码运行次数:0运行复制
#转换格式:set ff=unix#保存退出:wq
idea解决方案:

1.打开.sh文件,然后点击右下角CRLF修改为UNIX of OS就OK了

2.在配置文件中,统一添加以下配置

代码语言:javascript代码运行次数:0运行复制
unix