linux下执行shell脚本时报错:-bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory。
原因是windows下的文件是dos格式,即每一行结尾以\r\n来标识,而linux下的文件是unix格式,行尾则以\n来标识。
解决方法很简单,首先你先要检查一下看看你的脚本文件是不是这个问题导致的,用vi命令打开要检查的脚本文件,然后用
:set ff?
若执行结果为fileformat=dos则为dos格式,若执行结果为fileformat=unix则为unix格式。
如果是dos格式的,继续执行:
:set ff=unix
然后
:wq
保存退出即可