运行脚本的时候出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是文件格式的问题。也就是Linux和Windows之间的不完全兼容出现的问题。
-bash: ./datacollect.sh: /bin/bash^M: bad interpreter: 没有那个文件或目录
错误分析:因为操作系统是Windows,我在Windows下编辑的脚本,所以有可能会存在不可见的字符,监本文件是dos格式的,即每一行的行尾以Windows默认的格式来进行表示。可以有许多办法来查看这个文件是DOS格式的还是UNIX格式的们还是MAC格式的。
解决方法:
###第一种
vi datacollect.sh
:set ff 回车
fileformat=dos
:set fileformat=unix
然后执行脚本就正常了,原来是因为我这个文件在windows下编辑过,所以格式不对,将格式设置为unix格式就可以了。
###第二种
可以使用第三方的软件直接进行改变该脚本的格式,就可以直接进行运行了。
###第三种
终端执行
sed -i ‘s/\r$//’ filename #flename即shell脚本文件名
这个命令会把以\r结束的字符换成空白