脚本格式之殇——/bin/bash^M: 没有那个文件或目录

Linux下的bash脚本是不支持换行符\r的,如果运行从windows拷贝的文件,出现/bin/bash^M: 坏的解释器: 没有那个文件或目录这样的错误提示,不妨检查下文件格式是否有误。

如果是格式问题,有如下两种方法:

一、查找替换法

  • 第一步: cat -A filename查看\n\r空白符,\n会显示为$,而\r会显示为^M
  • 第二步: sed -i 's/\r$//'filename替换掉全部\r字符。

二、VIM重置文档格式

  • 第一步: :set ff?查看文件格式,能看到fileformat=dos这样的提示。
  • 第二步::set ff=unix强制转换为unix格式。
  • 第三步::wq保存退出。

然后再次运行看看是否还出现同样的错误,如果仍有错,就该检查语法和相关命令是否正确了。

参考:

  • http://www.2cto.com/os/201310/252970.html

  • http://blog.csdn.net/yongan1006/article/details/8142527

你可能感兴趣的:(脚本格式之殇——/bin/bash^M: 没有那个文件或目录)