(轉)執行指令碼出現bin/bash: bad interpreter: No such file or directory

mahanso發表於2011-05-06
/bin/sh^M: bad interpreter: No such file or directory2009-06-18 13:59在Linux中執行.sh指令碼,異常/bin/sh^M: bad interpreter: No such file or directory。 

分析:這是不同系統編碼格式引起的:在windows系統中編輯的.sh檔案可能有不可見字元,所以在Linux系統下執行會報以上異常資訊。 
解決:1)在windows下轉換: 
利用一些編輯器如UltraEdit或EditPlus等工具先將指令碼編碼轉換,再放到Linux中執行。轉換方式如下(UltraEdit):File--&gtConversions--&gtDOS->UNIX即可。 
2)也可在Linux中轉換: 
首先要確保檔案有可執行許可權 
#sh>chmod a+x filename 

然後修改檔案格式 
#sh>vi filename 

利用如下命令檢視檔案格式 
:set ff 或 :set fileformat 

可以看到如下資訊 
fileformat=dos 或 fileformat=unix 

利用如下命令修改檔案格式 
:set ff=unix 或 :set fileformat=unix 

:wq (存檔退出) 

最後再執行檔案 
#sh>./filename 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12272958/viewspace-694609/,如需轉載,請註明出處,否則將追究法律責任。

相關文章