All things are difficult before they are easy. 没有软件的裸机是一具僵尸,没有硬件的软件是一个幽灵。2012,专注于Linux和C语言,关注自动化、性能测试,关注开源社区和开源测试工具、方法,尝试测试团队管理!

bad interpreter: No such file or directory (Shell脚本异常)

上一篇 / 下一篇  2010-02-18 18:39:27 / 个人分类:Linux

我在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 (存盘退出)

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

最后再运行文件
sh filename.sh

参考文档:
http://ipopeye.javaeye.com/blog/342204

TAG: dos2unix 系统编码格式

 

评分:0

我来说两句

smile665

smile665

Stay hungry, stay foolish. 得意之时谨记,一半命运还掌握在上帝手里;失意之时须知,一半命运还掌握在自己手里。

日历

« 2024-04-24  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 955651
  • 日志数: 220
  • 建立时间: 2008-11-06
  • 更新时间: 2012-10-06

RSS订阅

Open Toolbar