问题描述:
问题出现操作过程:
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所示:
解决办法
将TortoiseGit 工具上该字段值关闭,修改autocrlf=false即可解决,方法如图2、图3所示:
附:Linux上修改文件格式方法
首先你先要检查一下看看你的脚本文件是不是这个问题导致的,用vi命令打开要检查的脚本文件,然后用
:set ff?
命令检查一下,看看是不是dos字样,如果是dos格式的,继续执行
:set ff=unix
然后执行
:qw
保存退出即可