[轉(zhuǎn)]bad interpreter: No such file or directory (Linux Shell腳本異常) - 笑遍世界的日志 - 網(wǎng)易博客
我在windows中用UltraEdit寫了兩個簡單Shell腳本,放到Ubuntu下運行。
在
Linux 中執(zhí)行.sh腳本,異常/bin/sh^M: bad interpreter: No suchorfiledirectory。
分析:這是不同
系統(tǒng)編碼格式 引起的,在windows系統(tǒng)中編輯的.sh文件可能有不可見字符,所以在Linux系統(tǒng)下執(zhí)行會報以上異常信息。
解決方案:
1)在windows下轉(zhuǎn)換:
利用一些編輯器如UltraEdit或EditPlus等工具先將腳本編碼轉(zhuǎn)換,再放到Linux中執(zhí)行。轉(zhuǎn)換方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。
2)也可在Linux中轉(zhuǎn)換:
vi filename.sh
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盤退出)
再加一招
使用vi
vi dos_file.txt
:%s/^M//g
其中^M 必須是同時按 Ctrl+V+M ,表示回車。不是直接輸入 ^M ,那沒有用的, :-)
3)用
dos2unix 命令轉(zhuǎn)換:
在Ubuntu中安裝tofrodos軟件包(dos2unix/unix2dos命令就在其中)
sudo atp-get install tofrodos
安裝好后,用如下命令即可將dos格式到文本文件轉(zhuǎn)化為unix通用格式。
dos2unix filename.sh
最后再運行文件
sh filename.sh
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。