我在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 |
|