Linux下运行shell脚本,报错“/bin/bash^M: bad interpreter: No such file or directory”

问题描述:

问题出现操作过程:

1. 使用TortoiseGit从github上clone一个工程,工程中存在一个shell脚本。

2. 将shell脚本使用sftp上传至Linux服务器。

3. 执行shell脚本,报错"/bin/bash^M: bad interpreter: No such file or directory"。

问题原因

TortoiseGit安装后默认Git设置为自动转换文件格式,它会直接将文件Unix格式转成Windows下的dos格式,字段为:AutoCrlf,如图1所示:

图1. TortoiseGit Git默认设置自动转换文件格式

解决办法

将TortoiseGit 工具上该字段值关闭,修改autocrlf=false即可解决,方法如图2、图3所示:

图2. TortoiseGit修改演示
图3. autocrlf修改演示

附:Linux上修改文件格式方法

首先你先要检查一下看看你的脚本文件是不是这个问题导致的,用vi命令打开要检查的脚本文件,然后用

:set ff?

命令检查一下,看看是不是dos字样,如果是dos格式的,继续执行

:set ff=unix

然后执行

:qw

保存退出即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。