执行sh脚本错误:/bin/sh^M: bad interpreter: 没有那个文件或目录

今天执行脚本时发现如下错误:

/bin/sh^M: bad interpreter: 没有那个文件或目录

错误分析:

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

脚本文件是DOS格式的, 即每一行的行尾以\n\r来标识, 其ASCII码分别是0x0D, 0x0A.

可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的

解决方法:

  vim filename

  然后用命令

  :set ff #可以看到dos或unix的字样. 如果的确是dos格式的。

  然后用

  :set ff=unix #把它强制为unix格式的, 然后存盘退出。

  再次运行脚本。

另外一种解决方法是使用dos2unix命令转一下,即输入: dos2unix 文件名

时间: 2024-07-30 14:19:50

执行sh脚本错误:/bin/sh^M: bad interpreter: 没有那个文件或目录的相关文章

/bin/bash^M: bad interpreter: 没有那个文件或目录

运行脚本时出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是文件格式的问题,也就是linux和windows之间的不完全兼容...具体细节不管,如果验证:vim test.sh:set ff?如果出现fileforma=dos那么就基本可以确定是这个问题了.:set fileformat=unix:wqOK了....... /bin/bash^M: bad interpreter: 没有那个文件或目录,码迷,mamicode.com

linux:执行脚本出现/bin/sh^M: bad interpreter: No such file or directory

问题出在^M,原因是脚本文件的编码格式是dos,有可能是我在window下编辑完了直接传到linux的结果,可以在vim中输入以下命令确认编码格式 :set ff //可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看. 也可以在命令行中用dos2unix指令转换编码 #dos2unix filename linux:执行脚本出现/bin/sh^M: bad interpreter: No suc

/bin/sh^M: bad interpreter:没有那个文件或目录解决

执行脚本时发现如下错误: /bin/sh^M: bad interpreter: 没有那个文件或目录 错误分析: 因为操作系统是windows,我在windows下编辑的脚本,所以有可能有不可见字符. 脚本文件是DOS格式的, 即每一行的行尾以\n\r来标识, 其ASCII码分别是0x0D, 0x0A. 可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的 解决方法: vim filename 然后用命令 :set ff? #可以看到dos或unix的字样. 如果的确是

-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录

昨天在windows下用写字板写了个shell脚本,使用winscp上传到linux上运行的时候发现运行不了,提示-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录,经过查找资料发现原因如下: 1.dos格式的文本文件要转换为unix格式的文本文件,在linux上操作如下:#unix2dos job.sh 2.或者vi job.sh set ff=unix wq! 保存退出后就可以运行.

/lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

[[email protected] client]# export PATH=/opt/crosstool/mipsel-linux/bin/:$PATH 查看是否配好 [[email protected] client]# env PATH=/opt/crosstool/mipsel-linux/bin/ [[email protected] client]# mipsel-linux-gcc -o a a.c bash: /opt/crosstool/mipsel-linux/bin/mi

/bin/sh: bad interpreter: 没有那个文件或目录

问题: 今天一个同事远程登录一台服务器,他要上去检查下邮件服务,因为邮件发不出去,上去之后没有解决,他问我遇到类似的问题没有.于是我登上服务器准备看看是什么情况,然后登的时候就出现了如下问题,但是我们做的是免秘钥验证,他之前登的时候是不需要密码的.一开始以为是/root/.ssh/下边的 这两个文件(authorized_keys  known_hosts)出了问题.把相关记录删除之后,还是登不进去. 后来想想拒绝了,是不是防火墙设置问题啊,然后在服务器上重启防火墙,又有如下报错 于是是不是se

将window的shell脚本通过ftp传输到Linux服务器后, shell脚本中执行时提示“没有那个文件或目录”的解决办法

出现bad interpreter:No such file or directory的原因,是文件格式的问题.这个文件是在Windows下编写的.换行的方式与Unix不一样,但是在vim下面如果不Set一下又完全看不出来. 问题分析:1.将windows 下编写好的SHELL文件,传到linux下执行,提示出错.2.出错信息:bad interpreter: 没有那个文件或目录. 问题原因:因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符.脚本文件是DOS格式

bin/sh^M: bad interpreter: No such file or directory解决

今天在本地写好的脚本上传到linux后不能运行,显示 bin/sh^M: bad interpreter: No such file or directory 这个错误,后来经过百度到可能是文件有问题: 原因是.sh脚本在windows系统下用记事本文件编写的.不同系统的编码格式引起的. 转行文件的编码格式: 1.确保用户对文件有读写及执行权限 [email protected]:~/RMAN/bin> chmod a+x test.sh 2.然后修改文件格式 (1)使用vi工具 [email 

Shell脚本报错:-bash: ./switch.sh: /bin/bash^M: bad interpreter: No such file or directory

在学习shell中测试case参数命令代码如下 #!/bin/bash #switch测试 case $1 in     start)         echo 'start'     ;;     stop)         echo 'stop'     ;; esac 在给当前shell脚本赋予了执行权限之后,执行报错代码如下 [[email protected] sh]# ./switch.sh stop -bash: ./switch.sh: /bin/bash^M: bad inte