问题
执行一个shell脚本返回错误:Not able to execute a .sh file: /bin/bash^M: bad interpreter,发现是从Windows系统拷贝去Linux系统,回车换行符导致。需要将行结尾修改成Line feeder.
解决
sed -i -e 's/\r$//' script.sh
或者用vi编辑器打开:
:set ff=unix
:wq
或者:
:%s/^M//gc
参考
Not able to execute a .sh file: /bin/bash^M: bad interpreter
当从Windows系统拷贝Shell脚本到Linux时,可能会遇到'bad interpreter'错误,原因是行尾的回车换行符(CR LF)不被Linux认可。解决这个问题可以使用`sed`命令或者`vi`编辑器进行行尾字符替换。通过运行`sed -i 's/
$//' script.sh`或者在`vi`中设置文件格式为UNIX并保存,即可修正脚本,使其在Linux环境下正常执行。
5598

被折叠的 条评论
为什么被折叠?



