UNIX/Linux下运行脚本文件出现bad interpreter:No such file or directory的原因和解决办法

 

UNIX/Linux下运行脚本文件出现bad interpreter:No such file or directory的原因和解决办法

@for&ever 2009-11-2

 

一、现象描述:

 

Windows下面编写脚本 forandever.sh,上传到Unix/Linux下面,执行如下命令运行:

 

#chmod +x forandever.sh

#./forandever.sh

 

错误如下:

bash: ./back : bad interpreter:No such file or directory

 

 

二、问题原因:

 

文件格式问题。因为Windows Unix/Linux 的文件换行方式不一样。

 

例如,文件是在Windows下编写的,换行方式采用的是Windows下面的方式,但是在Unix/Linux VI下面如果不Set一下则看不出来差别。

Windows下脚本文件一般默认是DOS格式的, 行尾以/r/n来标识, ASCII码分别是0x0D, 0x0A.

 

三、解决办法:

 

转换不同平台的文本文件格式到对应的平台。

 

1. 使用unix2dosdos2unix

C系统DJGPP中名字为dtouutod, u代表unix, d代表dos

 

2. sed

sed 's/^M//' filename > tmp_filename

mv -f tmp_filename filename

 

其中:^M是一个字符, ASCII0x0D, 生成办法:先按CTRL+V, 然后再回车或CTRL+M

 

3、在Windows下面使用 UE或者 EmEditor 等文本编辑器打开文件,

然后另存为,选择文件保存的格式中,换行方式里面选择 Unix(LF)保存后上传即可。

 

 

四、附:

如何检查文件格式?(DOS格式、UNIX格式、MAC格式)

 

1 VI命令

#vi filename

#:set ff?

这时,可看到dosunix字样。

如果是dos格式, set ff=unix把它强制转换为unix格式, 存盘退出应该即可运行。

 

2joe命令

#joe filename

如果是DOS格式, 行尾会有很多绿色的^M字样。

 

3od命令

#od -t x1 filename

如果有0d 0a 等字符, dos格式, 如果只有0a而没有0d, UNIX格式。

 

 

@forandever 2009-11-2

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值