-bash: /bin/bash^M: bad interpreter: 没有那个文件或目录

运行脚本的时候出现了这样一个错误,打开之后并没有找到所谓的^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结束的字符换成空白

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值