`
雨过天晴0521
  • 浏览: 159306 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

执行*.sh时出现bad interpreter错误

 
阅读更多
出现bad interpreter:No such file or directory的原因:
是文件格式的问题。这个文件是在Windows下编写的。换行的方式与Unix不一样,但是在VI下面如果不Set一下又完全看不出来。

解决方法:

1、上传到linux主机运行

     chmod +x back

     ./back

    错误提示如下:
    bash: ./back : bad interpreter:No such file or directory

2、错误分析:

因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符。

从你的脚本及报告的错误看来, 很有可能是你的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.
可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的

1). vi filename
然后用命令
:set ff?
可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看.

2). 用joe filename
如果是DOS格式的, 那么行尾会有很多绿色的^M字样出现. 你也可以用上述办法把它转为UNIX格式的.
3). 用od -t x1 filename
如果你看到有0d 0a 这样的字符, 那么它是dos格式的, 如果只有0a而没有0d, 那么它是UNIX格式的, 同样可以用上述方法把它转为UNIX格式的.

转换不同平台的文本文件格式可以用:

1. unix2dos或dos2unix这两个小程序来做. 很简单. 在djgpp中这两个程序的名字叫dtou和utod, u代表unix, d代表dos

2. 也可以用sed 这样的工具来做:
sed 's/^M//' filename > tmp_filename
mv -f tmp_filename filename
来做
特别说明:^M并不是按键shift + 6产生的^和字母M, 它是一个字符, 其ASCII是0x0D, 生成它的办法是先按CTRL+V, 然后再回车(或CTRL+M)

另外, 当SHELL程序报告command not found时, 总是去检查一下你的PATH里面有没有程序要用到的每一个命令(没指定绝对路径的那种). 你这么小的程序, 可以一行一行核对.
分享到:
评论

相关推荐

    vimconfig-vim配置脚本

    vim自动提示等多种功能 先安装ctags 然后进入./vim文件中执行 sh vim_... /bin/bash: /usr/bin/ctags: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory^@ 解决办法 sudo yum install glibc.i686

    datscript.sh:将 datscript 编译为 bash

    脚本文件 将 datscript 编译为 bash npm install datscript.sh 用法 var ds = require ( 'datscript.sh' ) var bash = ds ( ...运行上面的将 datscript test.sh 转换为 bash 并执行它 执照 麻省理工学院

    linux下安装oracle

    如果遇到"bash: ./be.sh: /bin/bash^M: bad interpreter: 没有那个文件或目录"的错误,这是因为文件格式问题。使用`dos2unix be.sh`命令将文件格式从DOS转换为Linux。 3. **运行beforeInstallOracle.sh**:执行此...

    linux运维常见的22个故障排查和解决方法

    **问题描述**:在实际工作中,可能会遇到这样的情况:一个看似正常的Shell脚本在Linux环境下无法执行,报出“:bad interpreter: No such file or directory”的错误。 **原因分析**:这种错误通常发生在使用Windows...

    windows下写的shell脚本在linux执行出错的解决办法

    在Windows下写了一个shell脚本,上传到Linux下执行时报错: 代码如下:[root@localhost test]# ./test.sh -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory test.sh源码: 代码如下:#!...

    Linux管理不可避免的一些常见错误

    迁移到Linux对于一些人来说,这简直是一场...尤其是对于一些刚步入Linux管理大门的管理员来说,如果不避免一些常见的错误,就容易给单位的网络或系统带来安全风险。本文将为帮助这些新手们避免这些错误提供一些建议。

    bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory

    在windows系统下写的python脚本,在linux下赋予权限chmod +x xxx.py 以后,执行./xxx.py运行提示:bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory 分析: 这是不同...

    Linux 监控tomcat,自动重启tomcat服务

    - 遇到错误提示时(例如`/bin/sh^M: bad interpreter: No such file or directory`),需要检查文件格式是否为Unix格式,如果不是,则需转换为Unix格式。 ##### 4. **定时任务配置** - 使用`crontab`服务来定时...

    深入理解linux执行文件提示No such file or directory的背后原因

    在Linux系统中,当尝试执行一个文件时,如果遇到"No such file or directory"的错误,通常意味着系统无法找到指定的文件或目录。然而,这个错误并不总是表示文件不存在,它可能隐藏了更深层次的问题,尤其是在跨平台...

    nginx-dobbue-zookeeper.doc

    若在执行`java -version`时遇到`bad ELF interpreter`错误,是因为缺少`glibc.i686`库。解决方法是通过`sudo yum install glibc.i686`命令安装缺失的库。 3. **Zookeeper安装** Zookeeper是一个分布式协调服务,...

    Linux0.11内核 遇见的问题

    Linux–“bad interpreter”问题 1、问题原因:在Windows下进行编辑后拷贝到Linux下运行,不同的系统间编码格式造成的(Windows的文件结尾以\r\n来标识,而Linux格式的文件行尾则以\n来标识) 2、问题解决(3种): 1...

    CentOS 6.3下搭建Pomelo部署环境.docx

    如果在运行`yum install git`时遇到`/usr/bin/python: bad interpreter`错误,这意味着Python的软链接存在问题。解决方法是删除旧的链接并创建一个新的指向正确Python版本的软链接: ```bash rm /usr/bin/python ln...

    linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方法

    如果出现“-bash: /usr/bin/yum: No such file or directory”的错误提示,这意味着系统找不到`yum`命令的执行路径,这通常是由于以下原因: 1. **yum命令未安装**:最直接的原因是`yum`这个包本身没有被正确地安装...

    Linux运维常见问题.pdf

    问题描述:某一天,想查看已写好的shell脚本,脚本很简单,也没有常规性的错误,却一直报“bad interpreter: No such file or directory”错误,无法正常执行。 解决方法: * 重新在Linux下编写脚本。 * 使用命令...

    linux系统安装字体方法教程介绍.docx

    在处理脚本问题时,有时会遇到"bad interpreter: No such file or directory"这样的错误。这通常是因为在DOS或Windows环境下创建的脚本在Linux中无法执行,因为换行符不同。解决方法是: 1. 在Linux环境下重新编写...

Global site tag (gtag.js) - Google Analytics