龙空技术网

一个ftp协议传输文件之后执行脚本无法工作的情况

良知犹存 101

前言:

此刻小伙伴们对“启动脚本未能在虚拟机中成功运行”大致比较讲究,你们都需要分析一些“启动脚本未能在虚拟机中成功运行”的相关文章。那么小编也在网络上搜集了一些有关“启动脚本未能在虚拟机中成功运行””的相关资讯,希望小伙伴们能喜欢,姐妹们快快来了解一下吧!

作者:良知犹存

转载授权以及围观:欢迎添加微信号:Conscience_Remains

总述

移植一个文件系统时候,我在window下git clone了对方仓库源码,然后用FileZilla用ftp协议把文件传到linux虚拟机的指定目录,然后准备更新到内核,没想到源码目录下面的执行脚本却无法使用,出现了如下bug提示:

bash: ./patch-ker.sh: /bin/sh^M: bad interpreter: No such file or directory 我改了半天终于找到几种解决方法,供大家参考。

1.首先我简单描述一下过程

我 git clone 了对方的仓库源码,并用FileZilla传输到虚拟机

紧接着我进行更新到内核,然后我发现该脚本无法工作

这是经过ftp传输过来的文件

这是正常可以执行的文件

紧接着我用查看了权限,发现没有执行权限,然后我添加了执行权限发现脚本依旧无法工作

2.解决过程

我在stackoverflow找到一篇好的文章

对方也是遇到这样一个问题,上面蓝色标记的问题就是一个答主的回复,和我遇到的情况很类似,他说可能是window用ftp ascii模式传输之后文件内容发生了改变 导致文件无法识别

同时他提出了两个建议:

第一:使用dos2unix 转化工作直接转化文本

第二:用vi编辑文本利用文本替换指令进行操作

下面是我执行过程,答主是给了一个方向,实际执行的时候还要多一些其他步骤

第一种方法:dos2unix转化

首先我们还是要先把文件的执行属性添加上

chmod 775 filename

在安装一个dos2unix

sudo apt install dos2unix

最后进行转化格式

执行成功

第二种方法: 利用vi编辑器%s命令替换 失败了

%s/^M//g

截图因为后面记录问题原因,重新截取后指令没有全部输完有些瑕疵。

发现脚本依旧无法执行

第三种方法: 这里我还用了第三种方法,没什么技术含量就是在虚拟机里面直接git clone代码,然后执行成功。

这就是我分享的一致一个linux文件系统的时候遇到的一个小问题,如果大家有什么遇到其他解决方法,欢迎分享交流哈。

标签: #启动脚本未能在虚拟机中成功运行 #ftp文件无法上传