<今天遇到的問題, 網(wǎng)上有很多類似的文章, 個(gè)人記錄下來, 加深記憶, 已經(jīng)明白的就繞路吧.>
執(zhí)行一個(gè)腳本full_build.sh 時(shí), 一直是提示我:
-bash: ./full_build.sh: /bin/bash^M: bad interpreter: No such file or directory
開始是說我權(quán)限不夠, 不能執(zhí)行, 接著我就把權(quán)限給改了, 就一直報(bào)上面問題.
記得幾個(gè)月前, 就遇到過類似的問題, 當(dāng)時(shí)是在編譯Android Framework, 后來打開出錯(cuò)的.xml文件, 很直接的看到很多的^M的標(biāo)識(shí), 由于負(fù)責(zé)編譯的同事幫忙解決了, 就沒有去問為什么, 今天再次遇到, 就上網(wǎng)搜了搜, 才明白了原因.
出現(xiàn)上面錯(cuò)誤的原因之一是腳本文件是DOS格式的, 即每一行的行尾以\r\n來標(biāo)識(shí), 使用vim編輯器打開腳本, 運(yùn)行:
:set ff?
可以看到DOS或UNIX的字樣. 使用set ff=unix把它強(qiáng)制為unix格式的, 然后存盤退出, 即可.
網(wǎng)上也有很多的其他方法, 比如: 執(zhí)行dos2unix 命令轉(zhuǎn)換編碼, 命令為: #dos2unix full_build.sh, 但我沒有dos2unix的安裝包, 所以就跳過了.
也有說造成這種問題的原因是在使用vim時(shí)不小心按了個(gè): Ctrl+v, 腳本是我從服務(wù)器上下的, 不清楚到底怎么會(huì)變成了DOS格式的了. 總之解決了就行啦.
聯(lián)系客服