天天看点

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命令打开文件:
[[email protected] bin]# vi startcluster.sh
  1. 在vi模式中使用 :set ff 命令可以查看文件的格式, 可以看到该文件的格式为dos格式
  2. 修改脚本文件为unix格式
  • 使用vi修改文件format
  • 命令为 :set ff=unix
执行完后再通过set ff命令查看文件格式,这时文件就已经是unix格式了
再次执行脚本,正常运行。

继续阅读