开启辅助访问 切换到窄版

打印 上一主题 下一主题

linux解决执行shell脚本bad-interpreter的方法

[复制链接]
作者:回头把L妖孽 
版块:
嵌入式操作系统 linux 发布时间:2021-1-14 12:10:07
7670
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当我们在windows环境修改了shell脚本,上传到linux服务器后,执行会出现/bin/bash^M: bad interpreter:No such file or directory 的错误,这是因为脚本文件在windows下编辑过。可能被转换成Windows下的dos文本格式了,这样的格式每一行末尾的换行符都是以\r\n来标识。
windows下,换行符是\n\r,而在linux换行符是\n
这样,windows下编辑的文件传到linux后,每行结尾都会多个\r,导致执行错误。

使用,cat -A 文件名可以看到这个\r字符被显示为^M。

进入文件。

然后,在命令模式下按下 : 进入到底线命令模式。

输入set ff? 命令 可以看到文件格式是dos的格式。

继续按: 进入底线命令模式 使用set ff=unix命令回车。

然后使用set ff? 命令 可以看到文件变成了unix格式

之后:wq退出就可以了

成功执行脚本

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表