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

在给当前shell脚本赋予了执行权限之后,执行报错代码如下

1
2
[root@localhost sh]# ./*.sh stop
-bash: ./*.sh: /bin/bash^M: bad interpreter: No such file or directory

主要原因是switch.sh是我在Windows下通过Sublime Text编辑后,在linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。

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

1:首先用vim命令打开当前的shell脚本文件

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

3:解决方法有两个

①直接当下输入命令

1
:set ff=unix

②返回文件当下目录执行命令

1
dos2unix switch.sh

如果当前系统没有dos2unix命令,还需要去网上下载安装包解压,到此为止。

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注