shell脚本报错:-bash:xxx: /bin/bash^M: bad interpreter: No such file or directory

今天自己写了一个Hadoop集群群起脚本,执行的时候发现报了以下错误:

-bash: /root/bin/startcluster.sh: /bin/bash^M: bad interpreter: No such file or directory

上网查阅资料后才知道linux只能执行unix格式的脚本,而这个脚本是我在windows上编辑好后上传到Centos上的,所以文件格式为dos格式。
现在只需要把文件的格式改为unix即可正常使用。


我们可以通过vi编辑器来查看、修改文件的format格式,步骤如下:
  1. 首先用vi命令打开文件:

[root@master bin]# vi startcluster.sh

  1. 在vi模式中使用 :set ff 命令可以查看文件的格式, 可以看到该文件的格式为dos格式

  2. 修改脚本文件为unix格式

  • 使用vi修改文件format
  • 命令为 :set ff=unix
执行完后再通过set ff命令查看文件格式,这时文件就已经是unix格式了
再次执行脚本,正常运行。

猜你喜欢

转载自blog.csdn.net/qq_41725214/article/details/87195603