运行sh脚本报错:-bash: ./filename.sh: /bin/bash^M: bad interpreter: No such file or directory

时间:2021-09-17 09:12:24

这种情况一般都是由于在win下编写的脚本换行CR LF,而非unix下LF,sh脚本通常以#!/bin/bash开头指定shell类型的路径,此时在linux下则会是#!/bin/bash CR,所以会报错没有/bin/bash^M这个路径

解决方法:
dos2unix -k -o filename 以实现将DOS格式的文本文件转换成UNIX格式

-k:保持输出文件的日期不变
-o:写入到源文件

来自: http://man.linuxde.net/dos2unix