执行shell出现bad interpreter
執(zhí)行shell出現(xiàn)bad?interpreter:No?such?file?or?directory
?
linux執(zhí)行shell出現(xiàn)bad?interpreter:No?such?file?or?directory的原因
是文件格式的問題。這個文件是在Windows下編寫的。換行的方式與Unix不一樣,但是在VI下面如果不Set一下又完全看不出來。
?
解決方法:
1、上傳到linux主機運行
?????chmod?+x?back
?????./back
????錯誤提示如下:
????bash:?./back?:?bad?interpreter:No?such?file?or?directory
2、錯誤分析:
因為操作系統(tǒng)是windows,在windows下編輯的腳本,所以有可能有不可見字符。
從你的腳本及報告的錯誤看來,?很有可能是你的腳本文件是DOS格式的,?即每一行的行尾以\r\n來標識,?其ASCII碼分別是0x0D,?0x0A.
可以有很多種辦法看這個文件是DOS格式的還是UNIX格式的,?還是MAC格式的
(1)vi?filename
然后用命令
:set?ff
可以看到dos或unix的字樣.?如果的確是dos格式的,?那么你可以用set?ff=unix把它強制為unix格式的,?然后存盤退出.?再運行一遍看.
(2)?用od?-t?x1?filename
如果你看到有0d?0a?這樣的字符,?那么它是dos格式的,?如果只有0a而沒有0d,?那么它是UNIX格式的,?同樣可以用上述方法把它轉(zhuǎn)為UNIX格式的.
?
轉(zhuǎn)換不同平臺的文本文件格式可以用
1.?unix2dos或dos2unix這兩個小程序來做.?很簡單.?在djgpp中這兩個程序的名字叫dtou和utod,?u代表unix,?d代表dos
2.?也可以用sed?這樣的工具來做:
sed?'s/^M//'?filename?>?tmp_filename
mv?-f?tmp_filename?filename
來做
特別說明:^M并不是按鍵shift?+?6產(chǎn)生的^和字母M,?它是一個字符,?其ASCII是0x0D,?生成它的辦法是先按CTRL+V,?然后再回車(或CTRL+M)
另外,?當SHELL程序報告command?not?found時,?總是去檢查一下你的PATH里面有沒有程序要用到的每一個命令(沒指定絕對路徑的那種).?你這么小的程序,?可以一行一行核對.
轉(zhuǎn)載于:https://www.cnblogs.com/wicub/p/6210431.html
總結(jié)
以上是生活随笔為你收集整理的执行shell出现bad interpreter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到被老鹰咬是什么意思
- 下一篇: 梦到山羊有什么预兆