分享

[转]bad interpreter: No such file or directory (Linux Shell脚本异常) - 笑遍世界的日志 - 网易博客

 文汐茂祥 2010-12-27
我在windows中用UltraEdit写了两个简单Shell脚本,放到Ubuntu下运行。
Linux 中执行.sh脚本,异常/bin/sh^M: bad interpreter: No suchorfiledirectory。
分析:这是不同 系统编码格式 引起的,在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决方案:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。

2)也可在Linux中转换:
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 命令转换:
在Ubuntu中安装tofrodos软件包(dos2unix/unix2dos命令就在其中)
sudo atp-get install tofrodos
安装好后,用如下命令即可将dos格式到文本文件转化为unix通用格式。
dos2unix filename.sh

最后再运行文件
sh filename.sh

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多