問題描述:
問題出現(xiàn)操作過程:
1. 使用TortoiseGit從github上clone一個工程,工程中存在一個shell腳本。
2. 將shell腳本使用sftp上傳至Linux服務(wù)器。
3. 執(zhí)行shell腳本,報錯"/bin/bash^M: bad interpreter: No such file or directory"。
問題原因
TortoiseGit安裝后默認(rèn)Git設(shè)置為自動轉(zhuǎn)換文件格式,它會直接將文件Unix格式轉(zhuǎn)成Windows下的dos格式,字段為:AutoCrlf,如圖1所示:

圖1. TortoiseGit Git默認(rèn)設(shè)置自動轉(zhuǎn)換文件格式
解決辦法
將TortoiseGit 工具上該字段值關(guān)閉,修改autocrlf=false即可解決,方法如圖2、圖3所示:

圖2.?TortoiseGit修改演示

圖3. autocrlf修改演示
附:Linux上修改文件格式方法
首先你先要檢查一下看看你的腳本文件是不是這個問題導(dǎo)致的,用vi命令打開要檢查的腳本文件,然后用
:set ff?
命令檢查一下,看看是不是dos字樣,如果是dos格式的,繼續(xù)執(zhí)行
:set ff=unix
然后執(zhí)行
:qw
保存退出即可