电竞比分网-中国电竞赛事及体育赛事平台

分享

[轉(zhuǎn)]bad interpreter: No such file or directory (Linux Shell腳本異常) - 笑遍世界的日志 - 網(wǎng)易博客

 文汐茂祥 2010-12-27
我在windows中用UltraEdit寫了兩個(gè)簡單Shell腳本,放到Ubuntu下運(yùn)行。
Linux 中執(zhí)行.sh腳本,異常/bin/sh^M: bad interpreter: No suchorfiledirectory。
分析:這是不同 系統(tǒng)編碼格式 引起的,在windows系統(tǒng)中編輯的.sh文件可能有不可見字符,所以在Linux系統(tǒng)下執(zhí)行會報(bào)以上異常信息。
解決方案:
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 必須是同時(shí)按 Ctrl+V+M ,表示回車。不是直接輸入 ^M ,那沒有用的, :-)

3)用 dos2unix 命令轉(zhuǎn)換:
在Ubuntu中安裝tofrodos軟件包(dos2unix/unix2dos命令就在其中)
sudo atp-get install tofrodos
安裝好后,用如下命令即可將dos格式到文本文件轉(zhuǎn)化為unix通用格式。
dos2unix filename.sh

最后再運(yùn)行文件
sh filename.sh

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多