shell脚本报错:-bash:/bin/sh^M: bad interpreter:

今天写了一个shell脚本,然后在执行的时候报错,如下截图:

主要原因是shell文件是我在windows下编辑然后上传到linux系统里执行的。shell文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。

我们可以通过vi编辑器来查看文件的format格式。步骤如下:

1.首先用vim命令打开文件

2.在vi命令模式中使用 :set ff 命令

可以看到改文件的格式为dos:

3.修改文件format为unix,使用vi修改文件format,命令:set ff=unix

执行完后再通过set ff命令查看文件格式,结果如下:

原文地址:https://blog.51cto.com/1345992/2432985

时间: 2024-10-14 13:32:42

shell脚本报错:-bash:/bin/sh^M: bad interpreter:的相关文章

shell脚本报错:"[: =: unary operator expected"

shell脚本报错:"[: =: unary operator expected" md5_109a="81ab961153b62d207f0f517048881b5d" md5_109b=`md5sum install.bin|awk '{print $1}'` if [ $md5_109a != $md5_109b ] 原因,当文件install.bin不存在时, $md5_109b为空这样对比字符串就变成了 if [ 81ab961153b62d207f0f5

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

shell脚本报错

早几天在pc电脑写了一个shell脚本,用来执行springboot项目,然后在centos7执行的时候报错,脚本如下比较简单:start.sh,下面只是列举了一部分脚本代码 2.拷贝脚本到linux服务器执行报如下错误: -bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory 后面查了下资料报错原因是: 我的start.sh的格式显示为:fileformat=dos start.sh是我在windows

linux的shell脚本报错“syntax error near unexpected token `”的解决

今天写了一个shell脚本,老报错检查了一下基本的语法并没有发现错误.后来经过百度解决掉了,现总结如下. 错误现象:执行shell脚本,老报错"syntax error near unexpected token `" 解决办法:vim -b example.sh打开文件,发现文件每一行的末尾多了一个^M,这个问题在使用vim example.sh查看是看不见的,只能通过报错来判断使用vim -b才能发现问题. 因为MS-DOS及Windows是回车+换行来表示换行,因此在Linux下

CRLF line terminators导致shell脚本报错:command not found

Linux和Windows文本文件的行结束标志不同.在Linux中,文本文件用"/n"表示回车换行,而Windows用"/r/n"表示回车换行.有时候在Windows编写shell脚本时需要注意这个,否则shell脚本会报"No such file or directory"或"command not found line x"之类的错误,如果不知晓前因后果,肯定会被这个折腾得相当郁闷.如下所示test.sh [[email 

Linux报错第一弹: /bin/sh^M: bad interpreter: No such file or directory

从Windows Sublime 写好一shell脚本,移到 Linux下,发现报错,/bin/sh^M: bad interpreter: No such file or directory 原因:这是不同系统编码格式引起的:在 windows系统中编辑的 .sh文件可能有不可见字符,所以在 Linux系统下执行会报以上异常信息. 解决: 1)在 windows下转换: 利用一些编辑器如 UltraEdit或 EditPlus等工具先将脚本编码转换,再放到 Linux中执行.转换方式如下( U

Oracle 11g安装GI后,运行roothas.pl脚本报错libcap.so.1找不到

环境:RHEL6.4 + Oracle 11.2.0.3问题:需求是文件系统迁移到ASM,在安装GI后,运行roothas.pl脚本报错 1.运行root.sh后,按提示运行roothas.pl报错: [[email protected] mnt]# /u01/app/11.2.0/grid/crs/install/roothas.pl Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_p

-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! 保存退出后就可以运行.

解决:在Eclipse中运行monkeyrunner脚本报错: IOError: (2, 'File not found - D:\\workspace\\monkeyrunner_test01 (\u62d2\u7edd\u8bbf\u95ee\u3002)')

在eclipse中搭建运行monkeyrunner脚本的环境,请见lynnLi的博客monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四) 但在实践中,状况确实层出不穷,首先我搭建好环境后,运行了一个简单的脚本,没想到抛出了错误. IOError: (2, 'File not found - D:\\workspace\\monkeyrunner_test01,说明没有在我们配置的路径下找到相应的脚本. 我们点击Run-External Tools-Exter